user model ergänzen

Django, Flask, Bottle, WSGI, CGI…
Antworten
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

Ich habe schon wieder eine neue Idee:
Ich habe schon geschrieben, dass einige User die Registrierung nicht hinbekommen oder aus irgendwelchen anderen Gründen zwei oder auch mehr Accounts haben. Das ist manchmal unübersichtlich und wenn die Kids dann auch noch in zwei verschiedenen Accounts Aufgaben rechnen (und sich dann wundern, dass "Aufgaben weg sind") wird es noch blöder. Ich schreibe also gerade einen Code um doppelte Accounts zu löschen bzw. zusammenzuführen. Das würde ich gerne protokollieren. Vor allem, wenn ich Lehrern dies auch ermögliche.
Meine Frage: Ich habe, wie ich es in Tutorien gelernt habe, ein "Profil" Model als one-to-one mit dem Usermodel verbunden. Irgendjemand hat mich mal hier gefragt, warum ich nicht das Usermodel erweitert habe. Meine Idee ist es, im Usermodel ein Textfeld zu ergänzen, in dem ich die oben genannten Prozesse protokollieren kann. Die Userinstanz würde ich bestehen lassen und nur die überflüssigen Profilinstanzen löschen. Ich finde allerdings keine Anleitung, wie ich das bewerkstelligen könnte. In den Anleitungen wird geraten eine one-to-one Relation zu erstellen. Bei den von mir erstellten Tabellen kann ich immer den Aufbau kontrollieren und auch in den migrations sehen was ich geändert habe. Mit dem usermodel geht das ja anscheinend nicht - oder?
Benutzeravatar
grubenfox
User
Beiträge: 432
Registriert: Freitag 2. Dezember 2022, 15:49

eventuell könnte man, meiner Meinung nach, auch über eine zusätzliche Tabelle/Modell "Protokoll" nachdenken. In der könnte man dann protokollieren wer wann was gemacht hat....
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

@Pitwheazle: Das vestehe ich nicht. Du hast do bereits das User Model mit einer 1:1 Relation erweitert. Warum willst du jetzt doch ein eigenes User Model? Eigentlich überlegt man sic so etwas fundamentales bevor mal seine Anwendung irgendwie live nimmt. Denn ein eigenes Usermodel bedeutet auch eine eigene Table in der Datenbank gibt - inklusive der Fremdschlüssel, etc.
Das ist also nichts, was man im Nachhinein einfach ändert.

Natürlich kannst du die Migrationen dafür sehen. Und die liegen natürlich in der Django App, wo das Model auch definiert wird.

Wie sinnvoll ist denn ein User ohne Profil? Davon würde ich abhängig machen, ob es überhaupt Sinn macht, das eine ohen das andere zu verwenden.

Ansonsten hat grubenfox in so weit recht, dass ich nicht sehe, warum man Dinge in einem Textfeld protokollieren soll. Ein Model mit dem Fremdschlüssel auf das Profil, Timestamp und Info sind da wohl eher hilfreich als Dinge irgendwo in ein Textfeld zu klatschen.
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

sparrow hat geschrieben: Freitag 6. Oktober 2023, 15:00 Natürlich kannst du die Migrationen dafür sehen. Und die liegen natürlich in der Django App, wo das Model auch definiert wird.
Wo/wie genau finde ich das? Ich kann ja damit einigermaßen umgehen, dass ich in meinen zwei apps ("core" und "accounts") jeweils ein "models.py" und ein Ordner "migrations" habe - das verstehe ich. Und das gibt es auch für "user"?
Ansonsten versuche ich nochmals meine verqueren Gedanken zu offenbaren: Die überflüssigen Profilinstanzen will ich löschen und die leeren Anzeigen sollen damit auch in den Übersichten der Lehrer verschwinden. Die überflüssigen Userinstanzen wollte ich, zumindest vorübergehend, erhalten. Einerseits um überprüfen zu können, was mit diesen passiert ist und andererseits hätte ich unter Umständen auch Schülern, die sich mit einem Account der nicht mehr mit einem Profil verknüpft ist, einen entsprechenden Hinweis zeigen können, was mit dem Account passiert ist und welche seiner Accounts aktuell genutzt wird.
Das vorher zu überlegen wäre zu viel verlangt. Einerseits habe ich mich mühselig erstmal zu dem jetztigen Projekt durchgearbeitet und konnte solche Zusammenhänge gar nicht erkennen und andererseits habe ich auch nicht damit gerechnet, dass User bis zu fünf Accounts anlegen.
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Definierst du in deinen Apps das User Model? Offensichtlich nicht. Also können dort auch nicht die Migrationen liegen.
Sie liegen in der App, in der das User Model definiert wird.
Antworten