2012-01-06 19 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

相关问题