ContentType没有声明明确的app_label

9
我正在将一个Django 1.10项目部署到一个带有Apache和mod_wsgi的Ubuntu服务器上。我遇到了以下无法解决的500错误:
RuntimeError: Model class django.contrib.contenttypes.models.ContentType没有声明一个明确的app_label,并且不在INSTALLED_APPS中的应用程序中。
settings.py中的installed_apps:
INSTALLED_APPS = [
    'django.contrib.sites',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'dashboard',
]

wsgi.py:

sys.path.append('/home/x_dashboard/x_dashboard/')

activate_this = os.path.expanduser("/home/x_dashboard/.venv/bin/activate_this.py")
execfile(activate_this, dict(__file__=activate_this))

os.environ['PYTHON_EGG_CACHE'] = '/home/x_dashboard/x_dashboard/.python-egg'
os.environ['DJANGO_SETTINGS_MODULE'] = 'x_dashboard.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Apache配置:

<VirtualHost *:80>
   #ServerName example.com
   #ServerAlias www.example.com
   #ServerAdmin username@example.com

   DocumentRoot /home/x_dashboard/x_dashboard/

   #ErrorLog /var/www/html/example.com/logs/error.log
   #CustomLog /var/www/html/example.com/logs/access.log combined

   WSGIScriptAlias / /home/x_dashboard/x_dashboard/x_dashboard/wsgi_local.py

   #Alias /robots.txt /var/www/html/example.com/public_html/robots.txt
   #Alias /favicon.ico /var/www/html/example.com/public_html/favicon.ico
   #Alias /images /var/www/html/example.com/public_html/images
   Alias /static /var/www/x_dashboard/static

   <Directory /home/x_dashboard/x_dashboard/x_dashboard/>
     <Files wsgi.py>
     Order deny,allow
     Allow from all
     Require all granted
     </Files>
   </Directory>
</VirtualHost>

Django文档指出,对于不属于已定义在installed_apps中的应用程序的模型,需要提供app_label。然而,'django.contrib.contenttypes' 已经被定义在installed_apps中。

感谢任何帮助。


请显示完整的回溯信息。 - Alasdair
3个回答

5

请尝试运行以下命令:

python manage.py makemigrations 
python manage.py migrate

这解决了我的问题。


如果我没有任何待处理的迁移怎么办? - Henshal B

3

如果有其他人遇到这个问题:我通过将 'django.contrib.contenttypes' 移动到我的 settings.py 中的 installed_apps 列表顶部来解决它。

我还移动了

import django
django.setup()

在安装应用程序后,这个讨论很有帮助。


2
在我的情况下,是因为INSTALLED_APPS中列出的应用程序(django-rosetta)没有在虚拟环境中安装(pip install)。 - Ivan Ogai
@eli,import django django.setup() 是什么意思,你在哪里实现它了? - Rahul Verma

1

确保设置环境变量:DJANGO_SETTINGS_MODULE=project_dir.settings.local

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接