自定义查询集将多个模型实例返回到序列化程序

Custom queryset returning multiple model instances to serializer

我正在使用 Django REST Framework 构建我自己的 API。我已经构建了多种方法,没有任何问题,但我偶然发现了我找不到解决方案的情况。

我有一个 GET 方法,它在内部创建一个查询集,该查询集从与当前用户相关的同一模型中获取多个实例。这是我的观点:

class getTheList(generics.ListAPIView):
    serializer_class = GetTheThingListSerializer

    def get_queryset(self):
        user = self.request.user
        the_thing = TheThing.objects.get(pk=self.kwargs['pk'])
        return the_thing.get_other_things(user)

可以看到,我覆盖了get_queryset()。现在 according to the documentation,我应该将查询集和 many=True 作为参数传递给序列化程序。但是,我无法访问此自定义查询集(self.get_queryset() 显然不起作用)。如果我不传递 many=True 参数,序列化器将只接收一个对象而不是多个。

当在 class 的顶部定义时,我已经成功地使用了查询集,但是当 get_queryset() 被覆盖时却没有。我该如何进行?

基础 class ListAPIView 在内部使用 many=true 实例化序列化程序,您可以 see in the source.

如果你的 get_queryset() 方法实际上 return 一个查询集,你应该没问题。

只有当你直接实例化serializer的时候,才需要通过many=true