2013-05-17 8 views
10

Ich möchte ein Modell mit Selbstabhängigkeit implementieren. Say Instanz People_A kann von People_B und People_C abhängen. Ich implementiere zuerst dieses Modell mit vielen zu vielen Schlüsseln.Modell Selbstabhängigkeit (1: n-Feld) Implementierung

class People(models.Model): 

dependency = models. ManyToManyField ('self', blank=True, null=True) 

Aber das Ergebnis ist, dass, wenn People_A auf People_B hängt in People_B hängt auch von People_A führen. Das will ich nicht haben.

Dann implementiere ich es mit Fremdschlüssel.

class People(models.Model): 

dependency = models.ForeignKey('self', blank=True, null=True) 

Aber das funktioniert auch nicht. Wenn People_A von People_B abhängt, können sich keine anderen People_B auf People_B verlassen. Es wird die alte Abhängigkeit mit der letzten Abhängigkeit abdecken.

dependencies = models.ManyToManyField("self", symmetrical=False) 

Siehe docs für symmetrische:

würde Jeder Hinweis

+3

Nur um zu verdeutlichen, ForeighKey: 'Wenn People_A von People_B abhängen, dann könnten sich keine anderen Leute auf People_B' verlassen. Andere Leute können sich immer noch auf People_B verlassen, aber People_A kann jetzt keine andere Abhängigkeit haben als People_B – stalk

+0

Hi, Stalk ist richtig. – user2354910

Antwort

7

Ich denke, das ist das, was Sie suchen dankbar sein.

+0

Hallo, Adrian, vielen Dank ~ das ist genau das, was ich brauche. – user2354910