Django rest framework 有没有办法预先查找相关的字段模型?

Django rest framework 有没有办法预先查找相关的字段模型?,django-rest-framework,Django Rest Framework,我公开了一个特定模型的API,并希望序列化它的一些相关字段。这些相关字段通常是重复的,我不想对每个相关字段进行大量的db查询。有没有一种简单的方法可以预先查询所有相关实例,然后让RelatedField序列化程序在字典中查找它?或者从相关字段的ModelSerializer中指定?您可以在查询集上使用Django的标准和方法 在视图中,使用queryset属性,而不是model快捷方式。 例如 class ExampleView(generics.ListCreateAPIView):

我公开了一个特定模型的API,并希望序列化它的一些相关字段。这些相关字段通常是重复的,我不想对每个相关字段进行大量的db查询。有没有一种简单的方法可以预先查询所有相关实例,然后让RelatedField序列化程序在字典中查找它?或者从相关字段的ModelSerializer中指定?

您可以在查询集上使用Django的标准和方法

在视图中,使用
queryset
属性,而不是
model
快捷方式。 例如

class ExampleView(generics.ListCreateAPIView):
    serializer_class = ExampleSerializer
    queryset = Example.objects.select_related(...)

谢谢你,汤姆。我不知道与预回迁有关。尽管听起来使用它比不使用要好,但对于我的场景来说,它仍然不是最有效的实现。原因是:(1)它在查询中使用多个查询,而我的应用程序可以在一个查询中预测它需要的结果;(2)大多数相关字段都使用相同的模型类,而且看起来Perfict_related对此并不明智。对于更为定制的方法,您还有其他建议吗?我不确定您的用例是什么样子的,但是如果您需要一些定制的东西,而这些定制的东西并不完全适合预先提供的通用视图,那么我建议您只显式地编写视图方法。例如,如教程第3部分的第一节所述@TomChristie对于
get_queryset
方法也是这样吗?@AndrésTorresMarroquín是的。