2012-01-06 23 views
0

我的簡化模型:如何在Django中創建涉及兩個字段的ManyToManyField關係?

class Weapon(models.Model): 
    name = models.CharField(max_length=100) 

class City(models.Model): 
    name = models.CharField(max_length=100) 

我想它,這樣我可以定義不同的武器領域價格,這將是從每個城市不同。我嘗試添加以下的武器類:

price = models.ManyToManyFields('City') 

..但它只是給了我一個清單哪種類型的答案的:「這種武器可在哪些城市」而不是「每個城市裏這種武器的不同價格是多少?」

回答

2

你可以在多對多領域使用intermediary model

class Weapon(models.Model): 
    name = models.CharField(max_length=100) 
    cities = models.ManyToManyField('City', through='Vendor') 

class City(models.Model): 
    name = models.CharField(max_length=100) 

class Vendor(models.Model): 
    city = models.ForeignKey('City') 
    weapon = models.ForeignKey('Weapon') 
    price = models.DecimalField(max_digits=6, decimal_places=2) 
+0

謝謝,這就是我一直在尋找的! – user1135045 2012-01-06 21:14:49

相關問題