2013-04-17 47 views
5

我试图让我的应用程序的管理网站在Django工作。我只是同步数据库,然后去了网站,但我得到的错误...Django - 网站匹配查询不存在

Site matching query does not exist. 

任何想法?

+1

这是一个重复的问题http://stackoverflow.com/questions/11476210/getting-site-matching-query-does-not-exist-error-after-creating-django-admin –

+0

可能重复的[获取网站匹配查询不存在错误后创建django管理员](https://stackoverflow.com/questions/11476210/getting-site-matching-query-does-not-exist-error-after-creating-django-admin) –

回答

22

每个django应用程序需要运行一个Site。在这里,你似乎没有它。

登录到你的Django壳

$> ./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() 

您应该所有设置。

+0

如何/应该通过设置文件添加吗? – felix001

+0

您无法通过设置添加它。执行'./manage.py shell'并执行这些命令 – karthikr

+0

好的,谢谢我只是想知道为什么我的应用程序没有这个。在Django中域也有什么参考。再次感谢... – felix001

4

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

0

在django中添加django.contrib.siteINSTALLED_APPS和 还在您的django设置文件中添加SITE_ID=1