2011-01-31 40 views
2

私は遅れ登録を行うためにthe tutorial at this linkを使用していますが、これをdjango-registrationと組み合わせようとしています。遅れ登録とdjango登録を統合するポストメソッド

レイジー登録リンクのチュートリアルでは、単純にイベントが保存され、親の再1つのコマンドを呼び出す必要が

:私は後reparent_all_my_session_objects()コマンドを呼び出すためにジャンゴ登録とポストフックを行うにはどうすればよい

def on_registration_complete(self, request): 
    Wishlist.reparent_all_my_session_objects(request.session, request.user) 
    return HttpResponseRedirect('/') 

def on_login_complete(self, request, user, openid=None): 
    Wishlist.reparent_all_my_session_objects(request.session, request.user) 
    return HttpResponseRedirect('/') 

ユーザーはログインするか登録しますか? authをコピーしてdjango.contrib.authからコピーする必要がありますか?

答えて

0

登録とログイン時に独自のシグナルレシーバーを作成する必要があります。

# Handle the signal sent by user_login 
from registration.signals import user_login, user_registered 
from events.models import Event 
from django.contrib.auth import authenticate, login 

# Use the signal sent after the login wrapper 
def user_login_handler(sender, **kwargs): 
    """signal intercept for user_login""" 
    request = kwargs['request'] 
    Event.reparent_all_my_session_objects(request.session, request.user) 

def user_registered_handler(sender, **kwargs): 
    """signal intercept for user_registered""" 
    request = kwargs['request'] 
    # Authenticate user, so that a User model (instead of AnonymousUser) is assigned to Event 
    # Registration form validates password1==password2 
    new_user = authenticate(username=request.POST['username'], password=request.POST['password1']) 
    login(request, new_user) 
    Event.reparent_all_my_session_objects(request.session, new_user) 

user_login.connect(user_login_handler) 
user_registered.connect(user_registered_handler) 
関連する問題