站点匹配查询不存在

时间:2012-08-05 04:51:41

标签: python django

Python noob,因为这是我的第一个项目,所以请原谅我的不熟悉。

该网站运行良好,直到我在我的应用上点击“退出”。在那之后,该网站会给我这个错误: DoesNotExist at / login / 网站匹配查询不存在。

我到处搜索,我得到的唯一解决方案是设置网站框架,SITE_ID等。我认为我的计算机上的这些项目很好,但我找不到一个演练/指南来帮我查看它们

谁能告诉我问题是什么以及如何解决?在此先感谢:3

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
    'NAME': '/home/dotcloud/nhs.db',                      # Or path to database file if using sqlite3.
    'USER': '',                      # Not used with sqlite3.
    'PASSWORD': '',                  # Not used with sqlite3.
    'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
    'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
}

}

7 个答案:

答案 0 :(得分:142)

如果您没有在数据库中定义站点并且django想要引用它,则需要创建一个站点。

来自python manage.py shell

from django.contrib.sites.models import Site
new_site = Site.objects.create(domain='foo.com', name='foo.com')
print (new_site.id)

现在将settings.py中的网站ID设置为SITE_ID

答案 1 :(得分:26)

django_site必须包含一个值与id相同的行(默认等于1),因为SITE_ID设置为{{1} }})。

答案 2 :(得分:2)

我在不使用python manage.py shell

的情况下修复了它

首先,我尝试使用manage.py shell:

使用上面的命令
from django.contrib.sites.models import Site
new_site = Site.objects.create(domain='foo.com', name='foo.com')
print new_site.id

但是它给出了INTEGRITY ERROR

简短回答是将SITE_ID = 1添加到settings.py 如果你想知道你的网站ID是什么,那么进入实际的数据库,我下载sqliteman看看我的桌子有什么。因此,您在表格中拥有的任何网站ID都会分配给SITE_ID

这是因为有一个函数get_current会查找SITE_ID并且在settings.py

中找不到它
tables
-django_site
--Columns
---id

它的id应为1,name为example.com,domain为example.com

希望这是一个很好的答案和帮助

答案 3 :(得分:1)

我看到为此创建新网站和引用ID的答案。但是,如果您已经拥有一个网站或以某种方式删除并再次从UI创建该网站,那么该ID将继续递增。要解决此问题,您可以按如下方式获取ID -

要获取您可以执行的ID -

python manage.py  shell
from django.contrib.sites.models import Site
print Site.objects.get(name='example.com').id

获取setting.py的ID。例如

SITE_ID = 8

基本上与你的旅游网站和settings.py对应的表中的ID应该匹配。

答案 4 :(得分:1)

在您的Django项目的settings.py中添加SITE_ID = 1

答案 5 :(得分:0)

enter image description here

查询数据库django_site表中的ID,并在Django settings.py中设置正确的ID,例如:SITE_ID = 3

答案 6 :(得分:0)

您似乎想添加 SITE_ID = 1 在settings.py