Wie in Titel, in Django, wann und wo sollte ich Informationen über den Benutzerzugriff speichern? Ich logge bereits die Benutzeranmeldung/-abmeldung mit den integrierten Django-Signalen ein, aber was ist, wenn der Benutzer bereits auf dieser Maschine angemeldet ist? Wie kann ich das erkennen?Django - Wie überprüft man, ob ein Benutzer die Website jeden Tag besucht
1
A
Antwort
2
Ich wollte dasselbe auf meinem Django-Projekt machen. Das Problem ist, dass die Variable last_login
nicht hilft, da sie bei der Benutzeranmeldung aktualisiert wird. Wenn der Benutzer seine Sitzung zwischenspeichert, wird die Variable niemals aktualisiert.
Eine Lösung besteht darin, einen Dekorateur zu erstellen und auf Ihrer Ansicht zu verwenden. Auf diese Weise wird die Variable aktualisiert, wenn der Benutzer Ihre Site verwendet.
Dies ist ein Beispiel dafür, wie es zu tun:
from functools import wraps
from django.contrib.auth.models import User
from django.utils import timezone
def W_update_user_login(func):
@wraps(func)
def wrapper(*args, **kwargs):
request = args[0]
if request.user.is_authenticated():
user=User.objects.get(username=request.user)
user.last_login=timezone.now()
user.save()
return func(*args, **kwargs)
return wrapper
Wenn Sie den vorherigen Code in Ihre views.py
Datei hinzufügen, können Sie Ihre Funktionen dekorieren. ex:
@W_update_user_login
def your_view_function(request):
#
# your normal code..
#
return HttpResponse....
Verwandte Themen
- 1. Wie überprüft man, ob die Zeit am nächsten Tag ist
- 2. C# - So erkennen Sie, ob die Website besucht wurde
- 3. Wie überprüft man, ob die Django-Template-Variable definiert ist?
- 4. Wie überprüft man, ob ein Benutzer noch aktiv ist?
- 5. Wie überprüft man, ob ein Benutzer angemeldet ist (wie man user.is_authenticated richtig verwendet)?
- 6. wie überprüft man, ob die Benutzereingabe ein bestimmtes Zeichen ist
- 7. Wie überprüft man, ob ein Pfad existiert?
- 8. Django - Wie man eine Funktion jeden Tag ausführt?
- 9. Wie überprüft man, ob crosswalk webview?
- 10. Wie überprüft man, ob ein Registrierungsschlüssel existiert
- 11. Einem Benutzer jeden Tag einen Punkt zuweisen
- 12. Wie überprüft man, ob ein String ein int enthält? -Swift
- 13. Wie überprüft man, ob Benutzer die Seite auf einer Root-Seite oder einer anderen Seite besuchen?
- 14. Wie man überprüft, ob zwei NSDates vom selben Tag sind
- 15. OpenGL: Wie überprüft man, ob der Benutzer glGenBuffers() unterstützt?
- 16. Wie überprüft man, ob die Schnittstelle ist
- 17. Wie überprüft man, ob die Nummer ein Mersenne Prime ist?
- 18. Wie überprüft man, ob die Datei ein Bild ist
- 19. Android: Wie überprüft man, ob die Datei ein Bild ist?
- 20. Wie überprüft man, ob Javascript deaktiviert ist?
- 21. Wie überprüft man, ob localhost
- 22. Wie überprüft man, ob der Benutzer in der Ansicht Laravel
- 23. Wie überprüft man, ob ein Android-Thread läuft
- 24. Howto: "Benutzer, die Ihr Profil besucht haben ..."
- 25. Jasmin - wie überprüft man, ob ein Argument existiert?
- 26. Django: Wie überprüft man, ob der Benutzer alle Felder leer gelassen hat (oder zu Anfangswerten)?
- 27. Wie überprüft man, ob eine Klasse existiert
- 28. Wie überprüft man, ob ein Wort ein Palindrom ist?
- 29. C - Wie überprüft man, ob ein Prozess ein Systemprozess ist?
- 30. Wie überprüft man, ob ein Benutzer in Symfony2 in einem Controller angemeldet ist?
Das scheint eine wirklich gute Idee! Danke für den Hinweis, ich werde es bald versuchen! –