2011-01-31 3 views
2

Я использую the tutorial at this link, чтобы сделать свою ленивую регистрацию, и я пытаюсь объединить ее с django-registration.Пост-методы для интеграции Lazy Регистрация с django-registration

Учебника по ссылке отложенной регистрации просто нужно вызвать одну команды, чтобы повторно Родитель событий сохраняются:

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('/') 

Как сделать пост-крюк с Джанго регистрацией для вызова reparent_all_my_session_objects() команды после пользователь регистрируется или регистрируется? Мне нужно создать свой собственный 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)