2013-05-17 11 views
10

Chciałbym wdrożyć model z niezależnością. Przypuśćmy, że People_A może zależeć od People_B i People_C. Najpierw zaimplementowałem ten model z wieloma kluczami.Implementacja samodzielnego modelu (jedno-do-wielu pól)

class People(models.Model): 

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

Ale wynik jest, że jeśli People_A zależą People_B spowoduje People_B zależą również People_A. To coś, czego nie chcę mieć.

Następnie zaimplementuję go za pomocą klucza obcego.

class People(models.Model): 

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

Ale to też nie działa. Jeśli People_A zależy od People_B, żaden inny People nie może polegać na People_B. Obejmie starą zależność z najnowszą zależnością.

Każda wskazówka będzie wdzięczny

+3

Po to, aby wyjaśnić klucz ForeighKey: 'Jeśli People_A zależy od People_B, wtedy żaden inny People nie może polegać na People_B'. Inne osoby nadal mogą polegać na People_B, ale People_A teraz nie może mieć innej zależności, niż People_B – stalk

+0

Cześć, łodyga ma rację. – user2354910

Odpowiedz

7

myślę, że to jest to, czego szukasz:

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

Zobacz docs dla symetryczne.

+0

Cześć, Adrian, bardzo dziękuję ~ to jest dokładnie to, czego potrzebuję. – user2354910

Powiązane problemy