2015-01-26 4 views
2

Как реализовать некоторую логику сразу после регистрации пользователя с помощью Django-AllAuth? До начала реализации AllAuth, на мой взгляд Войти содержал этот дополнительный бит логики, когда пользователь вошел в системуDjango AllAuth - сохранить данные сеанса после входа/регистрации

... 
login(request, user) 

     # Check if the user has a league in session 
     if 'league_id' in self.request.session: 

      # Save the league to this user's user instance 
      league_id = self.request.session.pop('league_id') # pop removes it from the session 
      league = League.objects.get(pk = league_id) 
      league.user = user 
      league.save() 

(Цель здесь в том, что я позволяю пользователям создавать экземпляр «лиги», прежде чем войти в систему, и после того, как они вошли в систему, лига попадает в свой экземпляр пользователя через лигу_ид, сохраненную в сеансе.)

Я попытался расширить метод form_valid() LoginView, предоставленный во allauth, но похоже, что метод form_valid() даже не вызван ,

Любые идеи, как я могу справиться с этим?

ответ

2

Вы можете использовать signals.

Существует сигнал, который запускается сразу же после того, как пользователь вошел в систему: allauth.account.signals.user_logged_in

+0

Звучит хорошо, но я никогда не использовал сигналы раньше. Не могли бы вы привести примерный код (или псевдокод) или указать мне пример в другом месте? – Ben

+1

http://stackoverflow.com/questions/16928297/django-allauth-send-welcome-email-on-signup-without-verification – cdvv7788

Смежные вопросы