2012-12-19 11 views
5

Używam Django do tworzenia spisu części, w którym pracuję. Oto fragment moich modeli:Modele Django - Pole ilościowe

class Part(models.Model): 
    description = models.CharField(max_length=64) 
    number= models.CharField(max_length=64) 
    price= models.FloatField() 

class Group(models.Model): 
    name = models.CharField(max_length=64) 
    parts = models.ManyToManyField(Part) 

Mam różne grupy (zamówienia) z niektórymi częściami.

Co chcę zrobić, to mieć właściwość ilościową dla części mojej grupy. Ale jeśli chcę dodać pole ilości do mojego obiektu Part, każda grupa będzie miała taką samą ilość, co nie jest prawidłowym zachowaniem. Jak mogę sprawić, aby moje grupy pamiętały, ile mają każdej części?

Dzięki za twój wkład i mam nadzieję, że to nie jest całkowite noob pytanie!

+0

trzeba 'through' tabeli – karthikr

+2

Nie używać pływaków o ceny, użyć DecimalField. –

+0

Dzięki Daniel Roseman, szukałem sposobu na uzyskanie 2 miejsc po przecinku! – Speccy

Odpowiedz

6

będzie trzeba through table:

Pośredni model jest związany z ManyToManyField pomocą poprzez argument wskazuje na modelu, który będzie pełnił rolę pośrednika.

class Part(models.Model): 
    description = models.CharField(max_length=64) 
    number= models.CharField(max_length=64) 
    price= models.FloatField() 

class Group(models.Model): 
    name = models.CharField(max_length=64) 
    parts = models.ManyToManyField(Part, through='GroupPart') 
4

Utwórz nowy między Group i Part, który przechowuje ilość.