Django Model Auto-Inkrement Primärschlüssel basierend auf Fremdschlüssel

8

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

%Vor%

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 21.01.2012, 01:43
quelle

2 Antworten

8

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.

%Vor%

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.

%Vor%

Die Methode cal_key zeigt deutlich an, was Sie wirklich benötigen.

    
Sandip Agarwal 21.01.2012, 09:05
quelle
0

Sie können dies versuchen:

%Vor%

Sie finden hier für Details.

    
Ni Xiaoni 07.10.2013 14:04
quelle

Tags und Links