Django项目/admin站点查询不存在

3 投票
3 回答
8251 浏览
提问于 2025-04-18 05:36

我在Heroku上运行一个网站。我的问题出现在我访问网站的管理页面时,地址是www.mysite.com/admin。当我打开这个页面时,我看到

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

问题是,我的项目在本地和我的测试服务器上都能正常工作。偏偏当我在网上访问时,就出现了这个错误。

我在StackOverflow上查了一下,尝试运行python manage.py shell,并输入了以下命令:

from django.contrib.sites.models import Site
Site.objects.create(pk=1, domain='www.xxx.com', name='xxx.com')

然后我把SITE_ID从1改成了www.mysite.com,结果把我的测试服务器搞坏了,所以我又把它改回去了,尝试不改SITE_ID。

那可能是什么问题呢?

3 个回答

-1

我刚刚需要删除 'django.contrib.sessions' 这个内容,从 settings.py 文件里的 INSTALLED_APPS 中,因为它导致了一些问题,而我这个项目只用来做一个网站。

不过,如果你是为了多个不同的网站在使用这个项目,并且需要用到 Django 的站点框架,请检查一下你数据库里的 SITE_ID,看看它是否和设置里定义的那个一致。

0

这个问题总是会不断出现,所以如果你不想让你的模型在多个网站上使用,我建议你把设置文件中的 SITE_ID 删除。请注意,这对我有效!

8

看起来你设置文件里的 SITE_ID 指向了一个在你数据库中不存在的 ID。

你要么需要在网站模型里创建一个新的网站(通过管理后台),然后把设置文件里的 ID 改成那个新网站的 ID;要么通过 SQL 重新插入这个项目,并给它一个和你设置文件里一样的 ID。

撰写回答