招待のみのログインでサイトを作成しようとしています。さらに、招待されたユーザーは、OAuthログイン方法を使用することによってのみサインインできます。
私はDjango1.4を使用しています。
私はアプリgithub.com/lizrice/django-allauthとgithub.com/lizrice/django-invitationを使用しています
インストール済みのアプリには、ドキュメントに記載されているすべてのアプリが含まれています。
'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が含まれています。
編集:スタックトレースを追加
編集:登録を削除しました。必要ありません。