0

django-registration を使い始めたばかりです。2 つの質問があります。

  1. ログインしたユーザーが登録ページにアクセスできないようにするにはどうすればよいですか?

  2. アクティベーション後にユーザーを自動的にサインインするにはどうすればよいですか?

アプリ自体のコードを変更しないことを好みます。

質問 2 については、「適切なシグナルをリッスンする関数を記述する」というドキュメントを既に読みました。関数は、ユーザーのバックエンド属性を正しい認証バックエンドに設定し、django.contrib.auth を呼び出す必要があります。 .login() を使用してユーザーをログインさせます。" これが何を意味するのか、またはこれを実装する方法を理解するのに十分なほどdjangoを知りません。あなたたちは助けてくれますか、私を正しい方向に向けてくれますか?

編集:

いくつかの信号を試してみましたが、まだ機能していません。何が問題なのかわかりません:

def loginActivationCallback(sender, user, request, **kwargs):
    print user
    print "registered"

user_registered.connect(loginActivationCallback)

また、私は Django 1.5 を使用しているため、pip install django-registration (1.5 を完全にはサポートしていません) は実行しませんでしたが、代わりに登録フォルダーをプロジェクトにコピーしました。これが信号に影響するかどうかはわかりません。

4

2 に答える 2

3

簡単にできることは、登録ビューでチェックインすることです

 if request.user.is_authenticated:
     #redirect user to the profile page 
     return HttpResponseRedirect('/profile/')
于 2013-03-07T05:01:48.893 に答える
0
from registration.signals import user_activated

def login_user(sender, user, request, **kwargs):
    user.backend='django.contrib.auth.backends.ModelBackend' 
    login(request,user)
user_activated.connect(login_user)
于 2013-03-07T05:02:11.030 に答える