我有一个检索查询集(Region.objects.filter(id=region_id)
)的视图集,并且我想对查询集进行序列化以包括许多外键引用的表,如下所示:
Region
>> Market
>> Baskets
>> Fruits
每个fruit
都有一个basket_id
每个basket
都有一个market_id
每个market
都有一个region_id
我有一个序列化器:
class RegionSerializer(serializers.ModelSerializer):
markets = serializers.SerializerMethodField()
class Meta:
model = Region
fields = '__all__'
def get_markets(self, obj):
return ==(list(obj.region_set.all().filter(region_id=obj.id).values()))
到目前为止,这很适合检索市场列表,但是我想嵌套它,所以我有一个区域,该区域的单个市场列表,每个市场上的单个篮子列表以及单个水果列表在每个篮子里。
我不确定如何使用序列化器完成上述子字段。
答案 0 :(得分:2)
这样的作品行吗?对于我认为的FK关系,您需要使用setupFilesAfterEnv: ['<rootDir>/_ui/test/setupTest.js'],
在下面的示例中,水果和篮子之间的FK将设置为related_name
related_name='fruit'
值得一提的是,考虑嵌套这样的负载对性能的影响。最终可能会严重打击数据库。