Доступ к атрибутам внешнего ключа для арифметики в django rest framework
Я пытаюсь вычислить длину дома относительно некоторых соседних районов, так что, house_size / (neighborhood[0].length + neighborhood[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_id = 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
Взломать это
class HouseCoverageOfNeighborhood(serializers.ModelSerializer):
Neighborhood = LengthFromNeighborhoodSerializer(many=True,read_only=True)
class Meta:
model = HouseNeighborhoodLink
fields = ['house_id', 'Neighborhood']