Forums

Strange bug with Django syncdb

Hello, I've found some interesting errors concerning this tutorial:

 http://tutorial.pythonanywhere.com/django

The code for settings.py inside

/ > home > rbkkr95 > djangomysite > djangomysite > settings.py

is:

# Django settings for djangomysite project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
   ('A WORKING NAME', 'A WORKING EMAIL ADDRESS')
)

MANAGERS = ADMINS

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '/home/rbkkr95/djangomysite/db.sqlite',                      # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': '',
        'PASSWORD': '',
        'HOST': '',         # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

# Hosts/domain names that are valid for this site; required if DEBUG is False
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
ALLOWED_HOSTS = []

# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# In a Windows environment this must be set to your system time zone.
TIME_ZONE = 'America/Chicago'

   # Language code for this installation. All choices can be found here:
   # http://www.i18nguy.com/unicode/language-identifiers.html
   LANGUAGE_CODE = 'en-us'

   SITE_ID = 1

 # If you set this to False, Django will make some optimizations so as not
 # to load the internationalization machinery.
  USE_I18N = True

 # If you set this to False, Django will not format dates, numbers and
 # calendars according to the current locale.
 USE_L10N = True

 # If you set this to False, Django will not use timezone-aware datetimes.
 USE_TZ = True

 # Absolute filesystem path to the directory that will hold user-uploaded files.
  # Example: "/var/www/example.com/media/"
  MEDIA_ROOT = ''

 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
 # trailing slash.
  # Examples: "http://example.com/media/", "http://media.example.com/"
  MEDIA_URL = ''

 # Absolute path to the directory static files should be collected to.
 # Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
 # Example: "/var/www/example.com/static/"
STATIC_ROOT = ''

 # URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
  )

     # Make this unique, and don't share it with anybody.
    SECRET_KEY = 'WORKING SECRET KEY'

# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#        'django.template.loaders.eggs.Loader',
)

   MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.csrf.CsrfViewMiddleware',
  'django.contrib.auth.middleware.AuthenticationMiddleware',
  'django.contrib.messages.middleware.MessageMiddleware',
  # Uncomment the next line for simple clickjacking protection:
  # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'djangomysite.urls'

# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'djangomysite.wsgi.application'

TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'djangomysite.myapp',
)

   # A sample logging configuration. The only tangible logging
   # performed by this configuration is to send an email to
   # the site admins on every HTTP 500 error when DEBUG=False.
  # See http://docs.djangoproject.com/en/dev/topics/logging for
 # more details on how to customize your logging configuration.
   LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
     'filters': {
       'require_debug_false': {
           '()': 'django.utils.log.RequireDebugFalse'
       }
   },
   'handlers': {
       'mail_admins': {
        'level': 'ERROR',
          'filters': ['require_debug_false'],
        'class': 'django.utils.log.AdminEmailHandler'
    }
   },
   'loggers': {
       'django.request': {
        'handlers': ['mail_admins'],
          'level': 'ERROR',
           'propagate': True,
    },
     }
  }

The following command

14:04 ~/djangomysite $ python ./manage.py syncdb

gave the following error:

Traceback (most recent call last):
 File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", lin
  e 429, in execute_from_command_line
   utility.execute()
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", lin
e 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", lin
e 252, in fetch_command
app_name = get_commands()[subcommand]
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", lin
e 101, in get_commands
apps = settings.INSTALLED_APPS
  File "/usr/local/lib/python2.7/site-packages/django/utils/functional.py", line 276, i
 n __getattr__
  self._setup()
 File "/usr/local/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _s
 etup
self._wrapped = Settings(settings_module)
  File "/usr/local/lib/python2.7/site-packages/django/conf/__init__.py", line 142, in _
 _init__
logging_config_func(self.LOGGING)
  File "/usr/local/lib/python2.7/logging/config.py", line 777, in dictConfig
   dictConfigClass(config).configure()
   File "/usr/local/lib/python2.7/logging/config.py", line 562, in configure
  'filter %r: %s' % (name, e))
 ValueError: Unable to configure filter 'require_debug_false': Cannot resolve 'django.ut
 ils.log.RequireDebugFalse': No module named RequireDebugFalse

I don't know anything about all these files, and what's wrong with these, or what's perhaps wrong with my code, that I just copied from the tutorial. I hope I have given you enough interesting information.

That settings file isn't the one that would be generated by the tutorial. A few bits that stand out that are different are:

# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'djangomysite.wsgi.application'

and

'filters': {
   'require_debug_false': {
       '()': 'django.utils.log.RequireDebugFalse'
   }
},

The second one suggests that there's a Django version difference involved. Did you do this in a virtualenv with Django 1.4 or 1.5? Or did you copy the config from somewhere else?

Going to the folder

/ > home > rbkkr95 > .virtualenvs > django14 > lib >  python2.7

I notice that I used django 1.4. And this should be the folder where all the malicious files are stored, corrupting the console.
This is where informatics fail: if you started using an old version, and later use a second program that uses a new version, then there is a version difference.
That's why I love Chrome OS and the Cloud Concept so much.

If you're using a virtualenv, you need to activate it in the console that you're using. Search the forums for 'virtualenv' there's a lot of detail about how to use virtualenvs.

I have taken a radical decision: the whole deletion of my web app, because I want to start anew. The biggest mistake I've made is not documenting any of my actions. That's because I'm totally inexperienced, but I sometimes want to spend my free time for programming.
You guys are very helpful. Aditionally, I've learnt that I have to take version differences into account when I'm programming.

Wait. It doesn't delete my code... I just want to undo all of my mistakes. So, how to delete all of my previous codes and start fully afresh? I quote:

This will delete your web app and its associated wsgi file. It will not delete your code.

I may also refer to this topic:

https://www.pythonanywhere.com/forums/topic/297/

I have an idea: deleting my pythonanywhere account and setting up a new one?!