在 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的主要内容,如果未能解决你的问题,请参考以下文章

Django中的Admin站点

Django 中Admin站点的配置

在应用程序 django 中使用 % url 'admin' % 引用管理站点

django基础知识之后台管理Admin站点:

Django的Admin站点管理

尝试登录 django 站点中的管理面板时出现 /admin/ 错误的 TemplateSyntaxError