Django-allauth SITE_ID错误

16
我正在学习Django,并决定使用django-allauth进行用户注册。我目前只想要本地账户(我在settings.py中排除了社交授权)。
当我访问/accounts/login时,我会收到以下错误:
您正在使用Django“站点框架”,但没有设置SITE_ID设置。创建一个站点并将SITE_ID设置为修复此错误。
官方的Django文档说:
当前网站在django_site数据库表中的ID(作为整数)。这是用于应用程序数据可以连接到特定站点和单个数据库可以管理多个站点的内容。 但是我不太理解这个。现在我只是在开发环境中运行django,通常只需运行python manage.py runserver就可以运行应用程序进行测试。
我如何使用本地帐户解决这个SITE_ID问题?在生产/开发环境中的解决方案是否不同?

6
你是否在settings.py文件中设置了SITE_ID=1?通常这是settings.py文件的默认设置,但如果你使用其它模块,可能需要手动添加该设置。 - Aaron Lelevier
也许这对你有帮助:https://dev59.com/WmYr5IYBdhLWcg3wAFvE?answertab=active#tab-top - Robert
@AronYsidoro 谢谢兄弟 - Droid
2个回答

31
将"SITE_ID = 1"添加到您的设置中,即可避免在无需将其添加到INSTALLED_APPS的情况下通过异常。 对我有用。

这是一个正确的解决方案。它帮助我摆脱了错误。我很惊讶在 Django 文档中没有提到它,或者可能是我错过了。 - pass-by-ref
@ShwetabhSharan 这里有描述(https://docs.djangoproject.com/en/dev/ref/contrib/sites/#enabling-the-sites-framework) - Serhii Matrunchyk
我有同样的问题。在设置文件中,我必须写SITE_ID = 1,但我不明白具体在哪里? - DarioBB

1
FYI。在Django v1.6中,启用网站框架的方式已经发生了改变,详情请参见此处: https://docs.djangoproject.com/en/1.6/ref/contrib/sites/ 一旦将“django.contrib.sites”添加到您的INSTALLED_APPS中,域名将在数据库中创建,id = 1,domain = example.com,name = example.com。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接