创建Django admin后获取站点匹配查询不存在错误

2024-04-20 01:13:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我将通过标准的Django教程为应用程序创建一个管理员。在“设置”中评论与管理员相关的内容并运行syncdb后,我收到以下消息:

DoesNotExist at /admin/ Site matching query does not exist.

有人能帮我弄清楚吗?


Tags: django应用程序消息内容标准admin管理员评论
3条回答

除了Simeon Visser对仍有问题的用户的回答外,还要确保设置中的SITE_ID变量与新创建的Site-对象的ID匹配。

当您将django.contrib.sites包含到已安装的U应用程序中并运行命令“python manage.py migrate”时,应用程序会自动将对象创建到“django U site”表中(域名和显示名等于“example.com”)。不需要你自己创造。

可能您只需要将设置SITE_ID=1添加到settings.py文件。

Django项目的Site对象丢失。每个Django项目都有一个包含站点名称和域的Site对象。它通常是在创建Django项目时自动创建的(特别是当syncdb命令运行时),但在您的情况下,它似乎并没有发生。

要修复它:

打开站点的Django shell(python manage.py shell)。

键入以下内容:

>>> from django.contrib.sites.models import Site
>>> Site.objects.create(name='example.com', domain='example.com')

如果以后要更改这些值,请转到管理面板(/admin/),然后在Sites部分编辑站点对象。

相关问题 更多 >