meines Wissens nach soll man 1:n Bzeihungen wie folgt speichern:
Code: Alles auswählen
class Lieferschein(models.Model):
# ...
class LieferscheinPosition(models.Model):
lieferschein = models.ForeignKey(Lieferschein)
Das funktioniert super. Man kann darüber auch problemlos Positionen hinzufügen: Lieferschein.lieferscheinposition_set.add(LieferscheinPosition)
Was mache ich aber wenn ich einen neuen Lieferschein anlege? Das ist etwas anders als die Reporter->Artikel-Beispiele im Internet, weil der Lieferschein und seine Positionen ja quasi zeitgleich anfallen.
Ich hatte gehofft, dass ich das in einem Rutsch machen kann:
Code: Alles auswählen
l = Lieferschein()
lp = LieferscheinPosition()
l.lieferscheinposition_set.add(lp)
l.save()
Gibt es hier eine gängige Möglichkeit?
Ich habe versucht für den entsprechenden View das Managment der Transaktion selbst zu lösen, aber das beschwört andere Probleme herauf. Zumindest bekomme ich immer beim Aufruf des Views den Fehler, das das die Transaktion noch aussteht (pending), obwohl es nur ein Ende der Funktion gibt und direkt davor ein Rollback ausgeführt wird.
Gruß
Sparrow