class Quarter(models.Model):
...
class House(models.Model):
quarter = models.ForeignKey(Quarter, related_name='houses')
class FloorRange(models.Model):
house = models.ForeignKey(House, related_name='floor_ranges')
is_commercial = models.BooleanField(default=False)
帮助我找到获取houses
Quarter
个houses
个对象的最佳方式,其中floor_ranges
有一个或多个is_commercial=True
{{1}}
答案 0 :(得分:0)
首先获得与四分之一相关的所有房屋。
houses = House.objects.filter(quarter=quarter)
然后将结果过滤到至少有一个楼层范围is_commercial=True
的人。为此,请使用相关名称floor_ranges
和双下划线__
来跨越关系。
houses = houses.filter(floor_ranges__is_commercial=True)
最后,使用distinct()
来防止多个楼层范围为is_commercial=True
的房屋出现重复结果。
houses = houses.distinct()