我正在为特定模型公开API,并希望序列化其某些相关字段。通常会重复这些相关字段,我不希望为每个相关字段序列化执行大量数据库查询。有没有一种简单的方法来预先查询所有相关的实例,然后让RelatedField序列化程序在字典中查找它?或者可以从ModelSerializer中指定相关字段?
答案 0 :(得分:5)
您可以在查询集上使用Django的标准prefetch_related和select_related方法。
在视图中,使用queryset
属性,而不是model
快捷方式。
例如......
class ExampleView(generics.ListCreateAPIView):
serializer_class = ExampleSerializer
queryset = Example.objects.select_related(...)