在 Django Admin 中查找站点的 site_id
Posted
技术标签:
【中文标题】在 Django Admin 中查找站点的 site_id【英文标题】:Finding the site_id of a Site in Django Admin 【发布时间】:2014-01-31 19:35:18 【问题描述】:我正在将 Django AllAuth 安装到我的项目中,并且在该应用程序的文档中遇到以下行 (see docs here):
为您的域添加一个站点,匹配 settings.SITE_ID(django.contrib.sites 应用程序)。
不出所料,我的 settings.SITE_ID 是 1。我如何在 Django Admin 中“匹配”这个?我只有 2 个字段 - 域名和显示名称。
相反,如果我在管理员中创建一个站点,我如何知道它的 site_id 是什么?
【问题讨论】:
【参考方案1】:您可以在地址栏中找到site_id
。
因此 settings.py 中的行将是:SITE_ID = 3
【讨论】:
这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。 @nietonfir 我怎么知道它的 site_id 是什么?您可以在地址栏中找到site_id。 这当然有帮助,谢谢 - 它确实回答了“相反”的问题。我仍然很想知道在您创建新网站时是否有任何方法可以编辑/创建 site_id(如果可能)【参考方案2】:转到您拥有 manage.py 文件的项目路径并按照以下步骤操作:
在终端中运行以下命令
python manage.py shell
然后在python shell中输入:
from django.contrib.sites.models import Site
new_site = Site.objects.create(domain='....', name='....')
print new_site.id
此打印值将是站点匹配查询的 site_id 如果您仍然感到震惊,请回复。我将引导您通过非常简单的步骤来享受 django allauth 的美丽。
【讨论】:
感谢您的回答-我认为您仍然无法选择ID-但至少您可以找到它? @gmfreak 我也有同样的问题。我在 localhost 上进行测试,它添加到 Sites 中,id 为 2,因此我在 settings.py 中设置 SITE_ID = 2 但随后我得到“应用程序配置不允许给定 URL。:一个或多个给定 URL 是应用程序的设置不允许......”一旦我点击 facebook。我还添加了localhost 作为我的 facebook 应用程序的站点 URL。我做错了什么?【参考方案3】:这对我有用:
user$ python manage.py shell --settings your-settings.py
[ ... banner ... ]
>>>
>>> from django.contrib.sites.models import Site
>>>
>>> sorted([(site.id,site.name) for site in Site.objects.all()])
[(1, u'www.lvh.me'), (2, u'example.com'), (3, u'www.example.com'),...]
>>>
>>> quit()
user$
【讨论】:
这应该是被接受的答案,谢谢你,为我省了很多麻烦以上是关于在 Django Admin 中查找站点的 site_id的主要内容,如果未能解决你的问题,请参考以下文章