Leiten Sie den Benutzer mit dem Anmeldesignal von django-allauth zu einer anderen URL weiter
Ich verwende Django-allauth für meine Login- / Registrierungs-bezogenen Inhalte. Wenn sich ein Benutzer (zum ersten Mal) auf meiner Website anmeldet, leite ich ihn an um/thanks/
Seite, indem Sie unten einstellensettings.py
Datei
LOGIN_REDIRECT_URL = '/ danke /'
Aber wenn der Benutzer versucht, sich das nächste Mal anzumelden (falls bereits registriert), sollte ich ihn weiterleiten'/dashboard/'
URL
Also versuchte ich das mit zu ändernDjango-allauth signals
wie unten, die überhaupt nicht funktioniert
@receiver(allauth.account.signals.user_logged_in)
def registered_user_login(sender, **kwargs):
instance = User.objects.get_by_natural_key(kwargs['user'])
print instance.last_login==instance.date_joined,"??????????????????????????????"
if not instance.last_login==instance.date_joined:
return HttpResponseRedirect(reverse('dashboard'))
Kann mir jemand bitte mitteilen, wie ich einen Benutzer weiterleiten kann?/dashboard/
Mache ich bei der normalen Anmeldung etwas falsch im obigen Signalcode?
Bearbeiten
Nach einigen Änderungen gemäß der unten stehenden Antwort vonpennersr
, meinAccountAdapter
Klasse sieht aus wie unten
from allauth.account.adapter import DefaultAccountAdapter
# from django.contrib.auth.models import User
class AccountAdapter(DefaultAccountAdapter):
def get_login_redirect_url(self, request):
if request.user.last_login == request.user.date_joined:
return '/registration/success/'
else:
return '/dashboard/'
Trotzdem leitet es den Benutzer weiter zu/dashboard/
ist meine Logik bei der Ermittlung des Erstbenutzers falsch?