Django 教程第 2 部分 - 注册后应用程序未显示在管理员上
Posted
技术标签:
【中文标题】Django 教程第 2 部分 - 注册后应用程序未显示在管理员上【英文标题】:Django tutorial part 2 - app does not show up on admin after registering 【发布时间】:2017-07-13 01:04:46 【问题描述】:按照 Django 教程 (part 2),注册后我的 django 管理面板中似乎看不到我的 Polls
应用程序。我的屏幕看起来有点像这样,明显缺少Polls
应用程序的部分:
到目前为止我做了什么(following parts of this answer 和教程本身):
-
在
admin.py
文件中注册了我的应用程序。
将其添加到我的项目文件夹中的settings.py
中的INSTALLED_APPS
。
运行 python manage.py makemigrations
和 python manage.py migrate
没有任何变化(顺便说一句,对于未来的读者 - 这是 syncdb
的新 >1.8 化身,我相信)。
确保与我登录的用户具有超级用户权限(根据this answer)。
重启了我的 nginx。
我仍然不清楚问题是什么,或者如何调试它。
我的admin.py
文件:
from django.contrib import admin
from .models import Question
admin.site.register(Question)
我的models.py
文件(注意Question
对象):
import datetime
from django.utils import timezone
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text
INSTALLED_APPS
我的settings.py
项目文件的一部分:
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
【问题讨论】:
你能发布你的admin.py
文件是什么样子吗?
立即添加。 @themanatuf
您在目录中看到admin.pyc
文件吗?我猜admin.py
没有被执行。还要确保django.contrib.admin
也在你的INSTALLED_APPS
中。
您是否已将您的应用添加到 settings.py 中的 installed_apps 列表中?
我确实有。还张贴在这里@ManikantaPrasanth。 @themanatuf 文件夹中没有 .pyc
文件,但 __pycahce__
文件夹有一个:admin.cpython-35.pyc
。那可能会导致问题吗?
【参考方案1】:
事实证明,我没有注意应用程序的服务过程。
所以,riding on this answer,我发现它是这样分解的:
-
nginx 获取一个 URL,决定从哪里拉取 - 在我们的例子中是 Gunicorn。
Gunicorn 搜索要提取的正确 Python 文件 - 在我们的例子中是 Django。
Djnago 被执行并加载应用(包括我们的管理面板)。
在这种情况下,在对管理面板进行更改后,我重新启动了 nginx,但没有重新启动 Gunicorn。重新启动 Gunicorn 解决了问题,如果您查看了我的最后一条评论 - nginx 因我的 admin.py
文件中的拼写错误而崩溃(在我尝试修复它的过程中,在写完这个问题后很好地添加了,因此没有出现在 OP 中)。
【讨论】:
以上是关于Django 教程第 2 部分 - 注册后应用程序未显示在管理员上的主要内容,如果未能解决你的问题,请参考以下文章
Django 教程第 2 部分模板——base_site.html 更改未反映