我正在尝试创建一个仅邀请登录的站点。此外,受邀用户只能使用某些 OAuth 登录方法登录。
我正在使用 Django 1.4。
我正在使用应用程序github.com/lizrice/django-allauth和github.com/lizrice/django-invitation
在 installed_apps 我已经包含了文档告诉我包含的所有应用程序:
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.google',
'invitation',
我在 settings.py 中设置了几个变量:
SOCIALACCOUNT_AUTO_SIGNUP = False
SOCIALACCOUNT_ENABLED = True
INVITE_MODE = True
ACCOUNT_INVITATION_DAYS = 10
INVITATIONS_PER_USER = 1
INVITATION_USE_ALLAUTH = True
在 urls.py 我只需要 url
url(r'^accounts/register/$', register,
{
'backend': 'invitation.backends.InvitationBackend',
},
name='registration_register'),
(r'^accounts/', include('invitation.urls')),
(r'^accounts/', include('allauth.urls')),
我可以创建一个邀请码,并使用该邀请码进行注册。现在,注册视图显示以下错误(完整的Stacktrace):
The view invitation.views.register didn't return an HttpResponse object.
注册视图应显示注册流程,用户可以在其中选择 OAuth 提供者来创建帐户。
编辑:使用我的配置,错误来自 allauth/socialaccount/views.py
def signup(request, **kwargs):
if request.user.is_authenticated():
return HttpResponseRedirect(reverse(connections))
sociallogin = request.session.get('socialaccount_sociallogin')
if not sociallogin:
return HttpResponseRedirect(reverse('account_login'))
没有具有该名称的会话项,因此代码尝试反转为“account_login”。此 URL 在 allauth 中定义。Allauth 在 installed_apps 列表中,并且包含 url。
编辑:添加堆栈跟踪
编辑:删除注册,不需要。