【发布时间】:2022-01-20 18:58:01
【问题描述】:
我正在尝试计算房屋相对于一些相邻社区的长度,例如,house_size / (neighborhood[0].length + neighbor[1].length...):
class House(models.Model):
house_id = models.CharField(max_length=256, primary_key=True)
size = models.IntegerField()
neighborhood = models.ManyToManyField('neighborhood', through='HouseNeighborhoodLink')
class Neighborhood(models.Model):
length = models.IntegerField()
我创建了一个表格来为几个社区分配一所房子。此外,房屋可以分配到几个相邻的社区:
class HouseNeighborhoodLink(models.Model):
house = models.ForeignKey(House, on_delete=models.DO_NOTHING)
neighborhood = models.ForeignKey(Neighborhood, on_delete=models.DO_NOTHING)
序列化器:
class LengthFromNeighborhoodSerializer(serializers.ModelSerializer):
class Meta:
model = Neighborhood
fields = ['length']
class HouseCoverageOfNeighborhood(serializers.ModelSerializer):
Neighborhood = LengthFromNeighborhoodSerializer(read_only=True)
class Meta:
model = HouseNeighborhoodLink
fields = ['house_id', 'Neighborhood']
我被困在三个点 (...) 中,我想在其中访问所有社区的长度属性,然后计算与房子的比例。我不确定如何从 HouseNeighborhoodLink 表中访问每个社区的长度:
class HouseCoverageDetail(generics.ListAPIView):
queryset = HouseNeighborhoodLink.objects.all()
serializer_class = HouseCoverageOfNeighborhood
def get_queryset(self):
house_id = self.kwargs['house_id']
neighborhood = self.queryset.filter(house_id=house_id)
...
return result
【问题讨论】:
标签: django django-rest-framework django-queryset