Frage: Django standard user model

Django, Flask, Bottle, WSGI, CGI…
Antworten
gomez72
User
Beiträge: 71
Registriert: Sonntag 28. März 2021, 09:57

Hallo,
ich benutze bei meiner Django Webapp das standard user model. Leider bemerke ich, dass mir die columns in auth_user nicht ausreichen.
Ich würde gerne dem request.user sein letztes Login Datum anzeigen.

Code: Alles auswählen

{{ request.user.last_login|date:"d.m.Y H:i"}}
Ich habe aber schnell verstanden, dass ich mit dem last_login column immer den aktuellen Login erhalte und eben nicht den letzten.
Ich benötige also ein column im model, dass den Vorletzten Wert speichert. den gibt es aber so nicht in auth_user.

In der Django Doc habe ich gelesen, dass ein nachträgliches erweitern des user models (mitten im Projektes) schwierig ist und es aufgrund Fremdschlüssel Beziehungen Fehler auftreten könnten.
ich kann also höchtens jetzt das bestehende user model erweitern.

gehe ich recht der Annahme dass ich das dann so lösen muss:

Code: Alles auswählen


from django.contrib.auth.models import User

class extended_user(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    really_last_login = models.DateTimeField
    
    
beim einloggen muss ich nun eine save Methode schreiben die in really_last_login reinschreibt

und aufrufen tue ich das im template:

Code: Alles auswählen

{{ user.extended_user.really_last_login}}

hmm in welche app lege ich dieses model eigentlich ab ?
vg gomez
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

gomez72 hat geschrieben: Mittwoch 20. April 2022, 20:46 In der Django Doc habe ich gelesen, dass ein nachträgliches erweitern des user models (mitten im Projektes) schwierig ist und es aufgrund Fremdschlüssel Beziehungen Fehler auftreten könnten.
Wenn du etwas weiter oben in der Doku schaust, bekommst du eine Alternative dazu erklärt: https://docs.djangoproject.com/en/4.0/t ... user-model

Grundsätzlich würde ich nur ein einziges Django app zu haben, es ist nur ganz selten sinnvoll mehrere zu haben.
gomez72
User
Beiträge: 71
Registriert: Sonntag 28. März 2021, 09:57

DasIch hat geschrieben: Donnerstag 21. April 2022, 15:01
gomez72 hat geschrieben: Mittwoch 20. April 2022, 20:46

Grundsätzlich würde ich nur ein einziges Django app zu haben, es ist nur ganz selten sinnvoll mehrere zu haben.
Aber ich dachte sofern ich verschiedene Themen in einem Projekt abwickle, ist es immer gut das in eigene Apps zu Kapseln, um später auch die jeweiligen Apps wiederum in anderen Projekten übernehmen zu können?
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

DasIch hat geschrieben: Donnerstag 21. April 2022, 15:01
gomez72 hat geschrieben: Mittwoch 20. April 2022, 20:46

Grundsätzlich würde ich nur ein einziges Django app zu haben, es ist nur ganz selten sinnvoll mehrere zu haben.
Aber ich dachte sofern ich verschiedene Themen in einem Projekt abwickle, ist es immer gut das in eigene Apps zu Kapseln, um später auch die jeweiligen Apps wiederum in anderen Projekten übernehmen zu können?
Ja, da hast du Recht. Ich habe beispielsweise eine App für Registrierung/Login und co gebaut, die ich schon häufiger in Projekte werfen konnte. Vielleicht hat DasIch auch falsch verstanden.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
gomez72
User
Beiträge: 71
Registriert: Sonntag 28. März 2021, 09:57

naheliegend hat geschrieben: Samstag 18. Juni 2022, 06:39
DasIch hat geschrieben: Donnerstag 21. April 2022, 15:01
gomez72 hat geschrieben: Mittwoch 20. April 2022, 20:46

Grundsätzlich würde ich nur ein einziges Django app zu haben, es ist nur ganz selten sinnvoll mehrere zu haben.
Aber ich dachte sofern ich verschiedene Themen in einem Projekt abwickle, ist es immer gut das in eigene Apps zu Kapseln, um später auch die jeweiligen Apps wiederum in anderen Projekten übernehmen zu können?
Ja, da hast du Recht. Ich habe beispielsweise eine App für Registrierung/Login und co gebaut, die ich schon häufiger in Projekte werfen konnte. Vielleicht hat DasIch auch falsch verstanden.
Ok danke für Deine Antwort. Schönen Tag dir
Antworten