Ich versuche herauszufinden, wie ich zwei meiner Django-Modelle so auslegen kann, dass bei der Speicherung eines neuen Modells in der Datenbank der Primärschlüssel so erhöht wird, dass er für alle Datensätze mit dem gleichen Wert der nächsthöhere Wert ist Fremdschlüssel.
Es ist ähnlich wie diese Frage gestellt , aber ich bin es frage mich, wie du es in Django machen würdest. Hier ist ein Auszug aus der Frage, die eine ähnliche Situation zeigt:
%Vor% Ich weiß Sie können nicht haben mehrere Primärschlüssel in einem Django-Modell und Sie können unique_together , aber die Dokumentation sagt, dass sie die äquivalente UNIQUE
-Anweisung in den CREATE
-Anweisungen verwendet. Würde
in den Modellen arbeiten mit dieser Antwort um zu erreichen, wonach ich suche? Die Beziehung zwischen den Modellen ist ein ModelA
mit vielen ModelB
s, aber jeder ModelB
hat nur ein ModelA
.
Dirk, du musst einige Änderungen am Modell vornehmen (wenn es erlaubt ist), wie Ignacio gesagt hat. So sollte ModelA
jetzt ungefähr wie folgt aussehen.
Wie Sie sehen können, habe ich overridden the default save method
, um den Schlüsselwert aus einer Methode cal_key
unter fk as argument
zu berechnen. Definieren Sie daher die folgende cal_key
-Methode in der models-Datei.
Die Methode cal_key
zeigt deutlich an, was Sie wirklich benötigen.