2012-12-19 191 views
5

我正在使用Django創建工作部分庫存。這裏是我有的模型片段:Django模型 - 數量字段

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) 

因此,我有不同的組(訂單),其中的一些部分。

我想要做的是爲我的組的部分有一個數量屬性。但是,如果我想將數量字段添加到我的零件對象,每個組將具有相同的數量,這不是正確的行爲。我怎麼讓我的團隊記得他們每部分有多少?

感謝您的意見,我希望這不是一個完全的noob問題!

+0

你需要一個'through'表 – karthikr

+2

不要使用float型的價格,使用DecimalField。 –

+0

感謝Daniel Roseman,我正在尋找一種方法來獲得2位小數! – Speccy

回答

6

您將需要一個through table

中間模型與ManyToManyField使用通過參數指向將充當中介模型相關聯。

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

在保存數量的GroupPart之間創建一個新的through table