last_login wird bei der Authentifizierung mit Tokenauthentifizierung in Django Rest Framework nicht aktualisiert

8

Ich arbeite in einem Projekt, das in einem Django-Benutzermodell und TokenAuthentication unter DjangoRestFramework

beruht

Ich wurde gebeten, die letzte Login-Zeit für jeden Benutzer zu erhalten, und ich habe festgestellt, dass dieses Feld nicht aktualisiert wird, wenn ich den Authentifizierungs-REST-Endpunkt aufruft.

Ist das eine bekannte Tatsache? Fehle ich etwas, das ich tun muss, um dieses Feld bei jedem Aufruf der Token-Authentifizierung zu aktualisieren?

Danke

    
F.D.F. 19.02.2015, 17:37
quelle

2 Antworten

7

Nun, am Ende habe ich vom REST Framework TokenAuthentication geerbt und darauf in der urls-Datei

gezeigt %Vor%

und die View verarbeitet die Anfrage und ruft update_last_login wie folgt manuell auf:

%Vor%     
F.D.F. 10.06.2015, 06:49
quelle
3

@ F.D.F. Antwort ist großartig. Hier ist ein anderer Weg, es zu tun.

Wir senden user_logged_in Signale, die update_last_login aufrufen:

user_logged_in.send(sender=user.__class__, request=request, user=user)

Hier ist eine Arbeitsansicht (basierend auf einem benutzerdefinierten Benutzermodell, das E-Mail als USERNAME_FIELD verwendet):

%Vor%

Den vollständigen Quellcode finden Sie hier: Api View mit last_login aktualisiert

Hoffe, das hilft.

    
Charlesthk 21.01.2017 22:32
quelle