【问题标题】:ImproperlyConfigured: Django issue with local_settings and settings配置不当:本地设置和设置的 Django 问题
【发布时间】:2017-08-08 11:01:09
【问题描述】:

我正在尝试为 django 项目运行一个简单的测试并将它们分成两个文件,因为这是一个很好的做法,但是,这总是给我一个错误

ImproperlyConfigured("settings.DATABASES is improperly configured. "

我不知道为什么我的settings.py最后会有这个

try:
    from local_settings import *
except:
    pass

而且只有我的local_settings.py有这个

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

是的,在同一个目录中。我正在使用python3,Windows 10

回溯错误

Traceback (most recent call last):
      File "C:\Users\Kevin\Documents\prueba\prueba\manage.py", line 22, in <module>
        execute_from_command_line(sys.argv)
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\core\management\__init__.py", line 363, in execute_from_command_line
        utility.execute()
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\core\management\__init__.py", line 355, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\core\management\base.py", line 283, in run_from_argv
        self.execute(*args, **cmd_options)
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\core\management\base.py", line 330, in execute
        output = self.handle(*args, **options)
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\core\management\commands\migrate.py", line 83, in handle
        executor = MigrationExecutor(connection, self.migration_progress_callback)
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\db\migrations\executor.py", line 20, in __init__
        self.loader = MigrationLoader(self.connection)
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\db\migrations\loader.py", line 52, in __init__
        self.build_graph()
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\db\migrations\loader.py", line 209, in build_graph
        self.applied_migrations = recorder.applied_migrations()
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\db\migrations\recorder.py", line 65, in applied_migrations
        self.ensure_schema()
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\db\migrations\recorder.py", line 52, in ensure_schema
        if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\db\backends\base\base.py", line 254, in cursor
        return self._cursor()
      File "C:\Users\Kevin\Documents\prueba\venv\lib\site-packages\django\db\backends\dummy\base.py", line 20, in complain
        raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
    django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

编辑

修复一下

本地设置

import os

BASE_DIR = os.path.dirname(os.path.dirname(__file__))

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'db.sqlite3',
    }
}

DEBUG = True

如果您将其部署到 heroku,请将其添加到设置的末尾

import dj_database_url
DATABASES = {'default': dj_database_url.config()}

DEBUG = False

ALLOWED_HOSTS = ['*']

try:
    from .local_settings import *
except ImportError:
    pass

【问题讨论】:

  • 删除try/except 看看会发生什么...如果出现问题 - 您完全忽略它并隐藏任何有用的调试信息。
  • 给出同样的错误django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.@JonClements

标签: python django windows


【解决方案1】:

在 Python 3 中,相对导入应该是

from .local_settings import *

【讨论】:

  • 尝试删除 try.. 除非 Jon 建议
  • 同样,我回答他
  • 我无法在您发布的代码中发现任何其他问题。
  • 不知道为什么会报错,感谢帮助,非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-11
  • 2010-11-13
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 2011-07-21
相关资源
最近更新 更多