我的简化模型:
class Weapon(models.Model):
name = models.CharField(max_length=100)
class City(models.Model):
name = models.CharField(max_length=100)
我想要它,以便我可以定义一个不同的武器字段价格,它将与每个城市不同。我尝试将以下内容添加到Weapon类中:
price = models.ManyToManyFields('City')
..但它只给我一个列表,列出了哪种答案:“这种武器可以在哪些城市使用?”而不是“每个城市这种武器的价格有什么不同?”
答案 0 :(得分:2)
您可以在ManyToMany字段中使用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)
答案 1 :(得分:1)
答案 2 :(得分:0)
https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships
您可以使用每个其他模型的外键显式创建多对多表。
我认为这就是你的意思