如何在Djang中返回多个queryset对象或添加queryset结果

2024-09-29 05:32:42 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的django应用程序中,我定义了一个ViewSet,它有一个getqueryset方法,如下所示:

class SampleViewSet(ReadOnlyModelViewSet):
    serializer_class = SampleSerializer
    permission_classes = (IsAuthorizedToAccess, )

    def get_queryset(self):
        queryset = Sample.objects.filter(submitted_by=self.request.user.id)
        queryset1 = Sample.objects.filter(submitted_by!=self.request.user.id) 
        return queryset

这样我就有两个queryset对象,第一个是用户提交的示例,第二个是其他用户提交的示例。 这个SampleViewSet是从ajax请求调用的,我在其中使用返回的queryset对象。在

你能帮我把这两个东西都还给我好吗。在

因为我尝试的是打印queryset对象,并尝试通过创建类似于queryset。但是看来django很聪明地抓住了这一点。在

编辑:问题是我应该寻找一个类似get_queryset like list()[来自Django Rest framework]的替代方法,并用Httpresponse返回json,还是有真正的解决方案来解决club two queryset对象并从这里返回。在


Tags: sample对象django方法selfgetbyobjects
2条回答

没有chain您可以这样管理:

def list(self, request):
    client = Client.objects.all()
    server = Server.objects.all()
    serializer1 = self.serializer_class(server, many=True)
    serializer2 = self.serializer_class(client, many=True)
    Serializer_list = [serializer1.data, serializer2.data]
    return Response(Serializer_list)

在作者还没有把问题细化之前,第一个猜测是:

from itertools import chain

def get_queryset(self):
    queryset = Sample.objects.filter(submitted_by=self.request.user.id)
    queryset1 = Sample.objects.filter(submitted_by!=self.request.user.id) 
    return chain(queryset, queryset1)

相关问题 更多 >