Ich habe ein Modell, das ein Feld latest
hat, um festzustellen, ob eine bestimmte Instanz die neueste Definition ist.Django: Boolesches Feld wird nicht aktualisiert
Wenn ich eine neue Zeile zur Datenbank hinzufüge, möchte ich sicherstellen, dass latest
für den bereits vorhandenen Datensatz als falsch markiert wird.
latest_version = Segment.objects.filter(title=title, latest=True).first()
if latest_version:
latest_version.latest = False
latest_version.save()
Dies scheint relativ einfach, aber das latest
Feld aktualisiert nicht und bleibt als True
.
Haben Sie vor, 'last' anstelle von 'first' zu verwenden? –
Sie aktualisieren nur das erste Vorkommen des Filters, d. H. Segment.objects.filter (title = title, latest = True) .first() 'Sind Sie sicher, dass Sie das gleiche' Segment'-Objekt überprüfen, nach dem Sie gefiltert haben. Sie sollten stattdessen den Filter und die Übereinstimmung versuchen, indem Sie 'id' dieses' Segment'-Dokuments verwenden. Auch vielleicht 'Segment.Objects.Filter (Titel = Titel, letzte = True) .first()' gibt nichts zurück, in diesem Fall gibt es keine Aktualisierung. Insgesamt scheint der Code perfekt und sollte so funktionieren, wie Sie es vorhaben zu arbeiten. –