django关系如何在模型中映射间接关系

时间:2017-04-25 04:57:44

标签: django python-3.x

我有三个模特

class Venue(models.Model):
  property_values = models.ManyToManyField('feature.PropertyValue')

class Feature(models.Model):
  name = models.CharField(max_length=255, null=False, blank=False)

class PropertyValue(models.Model):
  name = models.CharField(max_length=255, null=False, blank=False)
  feature = models.ForeignKey('Feature', null=False, blank=False)

在此我希望能够配置'功能'在场地模型中说通过财产价值属于它。

class Venue(models.Model):
  property_values = models.ManyToManyField('feature.PropertyValue')
  feature = models.ManyToManyField(via property_value something)

2 个答案:

答案 0 :(得分:0)

您已经可以通过property_values

访问功能
one = Venue.objects.first()
one.property_vaues.all()[0].feature

答案 1 :(得分:0)

您可以使用Django对象的add方法: https://docs.djangoproject.com/en/1.11/topics/db/examples/many_to_many/

venue = Venue.objects.get(id=1) # example
feature = Feature.objects.get(id=1) # example
venue.property_values.add(feature)

您也可以使用remove功能删除