Django运行时错误:ContentType模型未声明app_label且不在INSTALLED_APPS中
Django Runtime Error 解决办法
我的INSTALLED_APPS配置
from pathlib import Path from . import config import django django.setup() import os BASE_DIR = Path(__file__).resolve().parent.parent # 安全警告:生产环境请保密密钥! SECRET_KEY = 'django-insecure-3hs(_o73c=i#c!s(m4yr@c)4k-3=&381r(y6+qy(8b=4p1@l)l' DEBUG = True ALLOWED_HOSTS = [] # 应用定义 INSTALLED_APPS = [ 'rest_framework_simplejwt', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'corsheaders', 'users', 'posts', 'settings', ]
运行时错误信息
File "/Users/macbook_air/Desktop/ReactRoute/users/models.py", line 2, in from django.contrib.auth.models import AbstractUser,Group,Permission File "/Users/macbook_air/Desktop/ReactRoute/venv/lib/python3.11/site-packages/django/contrib/auth/models.py", line 5, in from django.contrib.contenttypes.models import ContentType File "/Users/macbook_air/Desktop/ReactRoute/venv/lib/python3.11/site-packages/django/contrib/contenttypes/models.py", line 139, in class ContentType(models.Model): File "/Users/macbook_air/Desktop/ReactRoute/venv/lib/python3.11/site-packages/django/db/models/base.py", line 134, in __new__ raise RuntimeError( RuntimeError: Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
解决步骤
- 删除settings.py中的以下代码:
import django django.setup() - 保存修改后的settings.py文件
- 重新启动Django项目
原因说明
django.setup()是用于在独立脚本(非Django项目默认启动流程)中初始化Django环境的方法,在settings.py中提前调用会导致Django还未完成配置加载就初始化,进而无法正确识别INSTALLED_APPS中的django.contrib.contenttypes应用,引发上述错误。
内容的提问来源于stack exchange,提问作者Арзбек
相关产品推荐
相关产品推荐

