Python Django中的站点系统问题
我对Django的站点系统有问题。我的问题是,在开发服务器初始加载时,在某些页面上运行Python Django中的站点系统问题,python,django,django-views,django-sites,Python,Django,Django Views,Django Sites,我对Django的站点系统有问题。我的问题是,在开发服务器初始加载时,在某些页面上运行Site.objects.get_current()时,我会收到一个异常,说站点匹配查询不存在。但是,如果我加载了站点的主页,它加载得很好,那么我可以返回到任何其他页面,但出现异常,它们也可以正常加载 以前有人遇到过这个问题吗 谢谢 Nick将站点ID=1添加到您的设置.py, 然后运行python manage.py syncdb创建相应的表,如果不存在,这将起作用 然后,您可以登录到您的管理站点: 单击Si
Site.objects.get_current()
时,我会收到一个异常,说站点匹配查询不存在。
但是,如果我加载了站点的主页,它加载得很好,那么我可以返回到任何其他页面,但出现异常,它们也可以正常加载
以前有人遇到过这个问题吗
谢谢
Nick将
站点ID=1
添加到您的设置.py,
然后运行python manage.py syncdb
创建相应的表,如果不存在,这将起作用
然后,您可以登录到您的管理站点:
单击
Site
将defalutexample.com
修改为您的,这在您编辑对象时使用,如果您在模型中定义了get_absolute\u url
函数,它将提供一个View on site
按钮。pyget_current
查看当前主机名,并检测您是否有具有匹配域名的site
对象
也许在开发中您正在使用localhost
或类似的东西。您需要创建一个具有相同域名的站点
对象,也就是说,可以通过类似这样的方式添加到迁移中:
if settings.DEBUG:
development_site_domain = 'localhost' # Or whatever yours is.
Site.objects.create(
name=development_site_domain,
domain=development_site_domain)
对于通过访问应用程序的任何FQDN,数据库中必须有一个Site
对象。您还需要在允许的\u主机设置中包含FQDN
另一种方法是设置SITE\u ID=1
(或数据库中现有SITE\u ID
的任何pk)。这里的缺点是,如果您在生产中使用动态站点ID
,则您的服务器在本地和服务器上的响应将不同