eli*_*eli 8 apache django mod-wsgi
我正在使用 Apache 和 mod_wsgi 将 Django 1.10 项目部署到 Ubuntu 服务器上。我收到以下无法解决的 500 错误:
运行时错误:模型类 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',
]
Run Code Online (Sandbox Code Playgroud)
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()
Run Code Online (Sandbox Code Playgroud)
阿帕奇配置:
<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>
Run Code Online (Sandbox Code Playgroud)
在Django文档说,一个app_label需要不属于在INSTALLED_APPS中定义的应用程序模型。但是,'django.contrib.contenttypes'是在 installed_apps 中定义的。
任何帮助表示赞赏。
小智 5
尝试运行以下命令:
python manage.py makemigrations
python manage.py migrate
Run Code Online (Sandbox Code Playgroud)
这解决了我这边的问题。
对于其他与此错误作斗争的人:我通过将“django.contrib.contenttypes”移动到 settings.py 中已安装应用程序列表的顶部来解决它。
我也搬家了
import django
django.setup()
Run Code Online (Sandbox Code Playgroud)
到installed_apps之后。该线程很有帮助。
| 归档时间: |
|
| 查看次数: |
14826 次 |
| 最近记录: |