Python noob,因为这是我的第一个项目,所以请原谅我不熟悉.
该网站运行良好,直到我点击我的应用程序"注销".之后,该网站会给我这个错误:/ login/site/Site匹配查询中的DoesNotExist不存在.
我到处搜索,我得到的唯一解决方案是设置站点框架,SITE_ID等.我认为我的计算机上的这些项目很好,但我找不到一个演练/指南来帮我查看它们.
谁能告诉我问题是什么以及如何解决?在此先感谢:3
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '/home/dotcloud/nhs.db', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
Run Code Online (Sandbox Code Playgroud)
}
我正在学习django,并决定使用django-allauth进行用户注册.我目前只想要本地帐户(我从settings.py中排除了社交身份验证).
当我访问时,/accounts/login我收到以下错误:
你没有设置SITE_ID设置就使用了Django"站点框架".在数据库中创建一个站点并设置SITE_ID设置以修复此错误.
官方Django文档说:
django_site数据库表中当前站点的ID(整数).这样可以使应用程序数据挂钩到特定站点,单个数据库可以管理多个站点的内容.
但我不太明白这一点.现在我只是在开发环境中运行django,通常只是做python manage.py runserver运行的东西,我可以测试我的应用程序.
如何SITE_ID使用本地帐户解决此问题?解决方案在生产/开发环境中会有所不同吗?
我正在将Django AllAuth安装到我的项目中,并在该应用程序的文档中遇到以下行(请参阅此处的文档):
为您的域添加网站,匹配settings.SITE_ID(django.contrib.sites app).
我的settings.SITE_ID是1,不出所料.如何在Django Admin中"匹配"这个?我只有2个字段 - 域名和显示名称.
相反,如果我在管理员中创建一个站点,我怎么知道它的site_id是什么?