模型的相关领域?

时间:2020-05-24 02:45:28

标签: django django-models

有一个模型 ElectoralTable

class ElectoralTable(models.Model):
    name = models.CharField(max_length=250)
    country_owner = models.ForeignKey(Country, on_delete=models.CASCADE)
    city_owner = models.ForeignKey(City, on_delete=models.CASCADE)
    address = models.CharField(max_length=400)
    latitude = models.CharField(max_length=250, blank=True)
    longitude = models.CharField(max_length=250, blank=True)

class Country(models.Model):
    name = models.CharField(max_length=250, unique=True, blank=False)

    def __str__(self):
        return self.name

    class Meta:
        ordering = ('name',)

class City(models.Model):
    name = models.CharField(max_length=400, blank=True)
    country_owner = models.ForeignKey(Country, on_delete=models.CASCADE, related_name='country')

    def __str__(self):
        return self.name

    class Meta:
        ordering = ('country_owner', 'name', )

如何选择与一个国家相关的城市。现在,瑞吉斯(Rigth)收到了模范城市中的每个城市,但我只想接收与国家所有者相关的城市

1 个答案:

答案 0 :(得分:1)

好吧,我找到了一个解决方案,那就是覆盖干净的方法,以防止保存不属于国家的城市

  def clean(self):

        city = City.objects.filter(country_owner__name=self.city_owner)
        city_names = []
        for item in city:
            city_names.append(item.name)
        if not str(self.city_owner)  in city_names:
            raise ValidationError(_('The city doesn't belong to the country'))
相关问题