【问题标题】:Django project /admin Site matching query does not existDjango项目/admin站点匹配查询不存在
【发布时间】:2014-05-06 23:04:45
【问题描述】:

我在 heroku 上运行一个网站。当我访问位于 www.mysite.com/admin 的站点管理员时,就会出现我的问题。当我访问此页面时,我得到了

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

问题是,我的项目 /admin 在本地以及在我的登台服务器上工作。当我现场访问它时,它就发生了,我得到了那个错误。

查看 SOF 后,我尝试使用以下命令运行 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 更改为 SITE_ID = www.mysite.com 并且最终破坏了我的登台服务器,所以我将它改回来并再次尝试而不更改 SITE_ID。

可能是什么问题?

【问题讨论】:

  • 你在本地使用什么数据库?在 Heroku 上?您是否将 Heroku 项目与那里的数据库同步?
  • 在本地使用 sqlite3 和在 heroku 上使用 postgresql。如果我正确理解你的问题,我认为 heroku 是同步的。
  • 如果你运行heroku run python manage.py syncdb会发生什么?
  • 从 0 个装置安装了 0 个对象
  • SITE_ID 为初学者采用整数值。我还将您的实时项目 url 添加到站点,然后当您在实时环境中时,将 SITE_ID 更改为实时 url。

标签: python django heroku


【解决方案1】:

您的设置文件中的 SITE_ID 设置似乎指向数据库中不存在的 ID。

您需要在站点模型中创建一个新站点(通过管理员)并更改设置文件中的 ID 以匹配该站点,或者通过 SQL 重新插入该项目并为其提供与您的设置文件相同的 ID .

【讨论】:

  • 完美运行,使用insert into "public"."django_site" ( "name", "domain") values ( 'site1', '0.0.0.0'); 创建了一个,并将设置中的 SITE_ID 编辑为正确的 id
【解决方案2】:

这个问题似乎总是不断发生,所以如果您不想为您的模型提供多个站点,那么我建议您从设置文件中删除 SITE_ID。请注意,这对我有用!

【讨论】:

    【解决方案3】:

    我只需要从settings.py 中的INSTALLED_APPS删除 'django.contrib.sessions',因为它会导致问题,并且我仅将这个项目用于一个站点。

    但是,如果您将项目用于多个不同的站点并且需要 Django sites 框架,请检查您的数据库中的SITE_ID 是否匹配在设置中定义。

    【讨论】:

      猜你喜欢
      • 2013-04-10
      • 2015-12-29
      • 2017-09-30
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      • 2011-02-10
      • 1970-01-01
      相关资源
      最近更新 更多