在Django中注册模型时遭遇配置错误与相对导入问题
Django Admin注册模型时的配置错误解决
问题描述
跟着Django官方文档开发首个应用,编写admin.py注册模型时出现以下错误:
Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
当前项目结构
├───Poll │ └───__pycache__ └───polls ├───migrations │ └───__pycache__ └───__pycache__
相关代码
admin.py
from django.contrib import admin from models import Question, Choice admin.site.register(Question) admin.site.register(Choice)
settings.py 中 INSTALLED_APPS 配置
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'members.apps.MembersConfig', ]
解决步骤
修正模型导入路径
admin.py里的模型导入写法错误,Django需要明确从当前app导入,把from models import Question, Choice改成:from .models import Question, Choice将polls应用加入INSTALLED_APPS
在settings.py的INSTALLED_APPS列表中添加polls应用,修改后如下:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'members.apps.MembersConfig', 'polls', # 或者用'polls.apps.PollsConfig',根据app内的AppConfig类决定 ]正确运行Django项目
不要直接单独执行admin.py文件,必须通过Django的管理命令启动项目,比如:python manage.py runserver这样Django会自动加载项目配置,不会出现未配置settings的错误。
内容的提问来源于stack exchange,提问作者HamTheMan
相关产品推荐
相关产品推荐

