Seite 1 von 1
Account löschen
Verfasst: Freitag 21. Februar 2025, 16:26
von Pitwheazle
In meinem Rechentrainer habe ich den, von Django zur Verfügung gestellten, Useraccount und ein mit OnetoOne verknüpfte Tabelle "Profil". Dieses kann ich per Code ohne Probleme löschen.
Code: Alles auswählen
profil = Profil.objects.get(id = user.profil.id)
profil.delete()
print(user)
# user.groups.clear()
# user.delete()
Um aber auch den Username wieder frei zu bekommen, möchte ich auch den zugehörigen Account löschen. "print(user)" gibt den richtigen User aus, das Löschen gelingt nicht, ich erhalte die Fehlermeldung
Durch Suche danach im Internet habe ich den Tipp gefunden, dass ich für das Löschen eine "on_delete" Anweisung angeben müsse. Wie mache ich das in diesem Fall?
Re: Account löschen
Verfasst: Freitag 21. Februar 2025, 19:32
von noisefloor
Hallo,
poste mal bitte die zugehörigen Modelle und die _volle_ Fehlermeldung, die bei `user.delete()` kommt.
Gruß, noisefloor
Re: Account löschen
Verfasst: Freitag 21. Februar 2025, 20:56
von Pitwheazle
wo finde ich das user Modell?
(Vielleicht ist das schon Teil des Problems ...)
Re: Account löschen
Verfasst: Freitag 21. Februar 2025, 21:40
von sparrow
Da, woher du es importierst.
Und es schein in anderen Modellen Felder zu geben, die per ForeignKey auf den User verweisen. Und wenn du denen nicht gesagt hast, dass sie kaskadierend mitgelöscht werden sollen oder auf einen anderen Wert geändert werden sollen, dann schützt die Datenbank das Ziel des Fremschlüssels.
Re: Account löschen
Verfasst: Freitag 21. Februar 2025, 21:45
von Pitwheazle
Danke, das zweite leuchtet mir ein. Aber hilf mir doch mit der ersten Aussage weiter:
Wie hilft mir
weiter?
Re: Account löschen
Verfasst: Freitag 21. Februar 2025, 22:21
von sparrow
Du hast doch gefragt, wo du das User Model findest. Und der Import beschreibt das doch.
Re: Account löschen
Verfasst: Freitag 21. Februar 2025, 22:23
von Pitwheazle
Sorry, ich bin geistig blond und leicht dement

... mir reicht die Beschreibung nicht.
Re: Account löschen
Verfasst: Freitag 21. Februar 2025, 22:42
von Pitwheazle
OK, ich habe den Speicherplatz gefunden, das ist aber nicht ganz trivial - hätte ich das wissen müssen?
Speicherplatz für user.model: C:\Users\meinname\AppData\Local\Programs\Python\Python310\Lib\site-packages\django\contrib\auth
Re: Account löschen
Verfasst: Samstag 22. Februar 2025, 09:04
von noisefloor
Hallo,
das User-Model kommt von Django, das meine ich auch nicht. Ich meine dein Profil-Model, was 1:1 mit dem User verknüpft ist, was du zeigen solltest. Und der volle Stacktrace, wenn du user.delete() ausführst, steht auch noch aus.
Gruß, noisefloor
Re: Account löschen
Verfasst: Samstag 22. Februar 2025, 15:46
von Pitwheazle
@noisefloor: Die Hinweise von sparrow haben mir schon geholfen das Problem zu lösen.
Und die Suche nach dem user Modell hat mir viele Erkenntnise gebracht und ich weiß jetzt endlich was sich hinter "import" Befehlen wie
verbirgt und mir endlich mal den dortigen Code anschauen. ... Na ja, muss man halt erstmal wissen.