【问题标题】:Django - Site matching query does not existDjango - 站点匹配查询不存在
【发布时间】:2013-04-10 17:10:50
【问题描述】:

我正在尝试让我在 Django 中的应用程序的管理站点正常工作。我刚刚同步了数据库,然后去了该网站,但我得到了错误...

Site matching query does not exist.

有什么想法吗?

【问题讨论】:

标签: python django django-models


【解决方案1】:

每个 django 应用程序都需要一个 Site 才能运行。在这里你好像没有。

登录你的 django shell

$> ./manage.py shell
>>> from django.contrib.sites.models import Site
>>> site = Site()
>>> site.domain = 'example.com'
>>> site.name = 'example.com'
>>> site.save()

$> ./manage.py shell
>>> from django.contrib.sites.models import Site
>>> site = Site.objects.create(domain='example.com', name='example.com')
>>> site.save()

你应该准备好了。

【讨论】:

  • 如何/应该通过设置文件添加?
  • 无法通过设置添加。执行./manage.py shell 并在那里执行这些命令
  • 好的,谢谢我只是想知道为什么我的应用程序没有这个。此外,该域在 Django 中有什么参考。再次感谢...
  • 还要确保将settings.py 中的SITE_ID 设置为0。
  • 我喜欢用这种方式来解决损坏的 Django 站点中模型的任何问题...
【解决方案2】:

您还需要确保站点域与您实际使用的域相同。例如,如果您是从 http://127.0.0.1:8000/admin/ 访问管理站点,那么您的 site.domain 应该是:site.domain = '127.0.0.1:8000'。

【讨论】:

    【解决方案3】:

    在 django 中添加 django.contrib.sites INSTALLED_APPS 和 还要在你的 django 设置文件中添加SITE_ID=1

    【讨论】:

    • 它的复数 django.contrib.sites
    • SITE_ID 表示您在数据库表中创建一个对象,您将在其中根据您的应用程序(如 facebook.com)添加站点名称。 xyx.com 所以你可以根据需要添加
    【解决方案4】:

    在 settings.py 上添加 SITE_ID=1 对我有用。

    【讨论】:

    【解决方案5】:

    settings.py 中试试这个:

    SITE_ID = 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-20
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 2015-12-29
      • 2012-08-02
      相关资源
      最近更新 更多