AttributeError: у объекта «Настройки» нет атрибута «DATABASE_ENGINE» - PullRequest
2 голосов
/ 16 февраля 2012

Я новичок в django и python, пытаюсь запустить кусок кода django в моей системе, но я сталкиваюсь с этими проблемами, я работаю с версией 2.7 python и v1.4 django

$ python manage.py runserver
Running in development mode.
Running in development mode.
Running in development mode.
Running in development mode.
Validating models...

HACKUING USER MODEL
Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x101981e50>>
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 91, in inner_run
    self.validate(display_num_errors=True)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 266, in validate
    num_errors = get_validation_errors(s, app)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/validation.py", line 30, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/loading.py", line 158, in get_app_errors
    self._populate()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/loading.py", line 64, in _populate
    self.load_app(app_name, True)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/loading.py", line 88, in load_app
    models = import_module('.models', app_name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/Kinnovate/Desktop/fsdjango/platformsite/notices/models.py", line 9, in <module>
    from common.fields import PickleField
  File "/Users/Kinnovate/Desktop/fsdjango/platformsite/common/fields/__init__.py", line 1, in <module>
    from pickle import *
  File "/Users/Kinnovate/Desktop/fsdjango/platformsite/common/fields/pickle.py", line 27, in <module>
    mysql_backend = settings.DATABASE_ENGINE == 'mysql'
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/functional.py", line 186, in inner
    return func(self._wrapped, *args)
AttributeError: 'Settings' object has no attribute 'DATABASE_ENGINE'

эточасть файла settings.py, относящаяся к вопросу

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': os.path.join(DIRNAME, 'database.sqlite3'), # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
 }

как мне это исправить?

Ответы [ 2 ]

6 голосов
/ 16 февраля 2012

Что такое /Users/Kinnovate/Desktop/fsdjango/platformsite/common/fields/pickle.py? Это твой код? Тогда у вас есть ошибка, потому что у вас действительно нет DATABASE_ENGINE в ваших встречах. Вместо этого используйте settings.DATABASES['default']['ENGINE'].

1 голос
/ 16 февраля 2012

Вы что-то упускаете

Потому что в качестве вашей обратной трассировки ваша база данных должна быть mysql.

File "/Users/Kinnovate/Desktop/fsdjango/platformsite/common/fields/pickle.py", line 27, in <module>
    mysql_backend = settings.DATABASE_ENGINE == 'mysql'
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/functional.py", line 186, in inner
    return func(self._wrapped, *args)

Поскольку она вводится в строке mysql_backend = settings.DATABASE_ENGINE == 'mysql'.

В соответствии с вашими настройками это 'ENGINE': 'django.db.backends.sqlite3',, поэтому оно должно быть введено в sqlite. Пожалуйста, проверьте ваше приложение, так как вполне возможно, что ваш settings.py может быть ссылается из другого места.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...