Wie gehe ich mit fremden Schlüsseln wie Benutzern oder Benutzernamen um, die eines Tages gelöscht werden könnten?Umgang mit Benutzern als Fremdschlüssel und Löschen
Meine beste Schätzung wäre ein CharField mit Choices, das auf das Referenced Field beschränkt ist, da das Löschen eines ForeignKey zu einer Kaskadenlöschung führen würde.
Ich möchte z. B. den Namen des Benutzers für das Objekt beibehalten, auch wenn das ursprüngliche Benutzerobjekt gelöscht wurde.
wäre so etwas wie dieses Werk:
def set_user_name(self):
self.user_name = self.user.name
return None
user = models.ForeignKey(User,
blank=True,
null=True,
on_delete=models.SET(set_user_name))
user_name = models.CharField(max_length=50, blank=True, null=True)
Ich habe eine ähnliche Frage beantwortet [hier] (http://stackoverflow.com/questions/42632464/how-can-i-set-user- Vollständiger Name-in-Fremdschlüssel-Feld-mit-Benutzer-Modell-Verwendung-auf-löschen/42634422 # 42634422). Die Idee ist, ein "CharField" zusammen mit "ForeignKey" zu speichern. –
(Ich habe meine Antwort unten korrigiert und aktualisiert) – Udi