工会不在django休息区工作?

工会不在django休息区工作?,django,django-rest-framework,Django,Django Rest Framework,我有2个表,想在结果集上实现union吗? 我已经包装了一个父模型,并将其Pk作为FK包含在两个子表中,并在rest框架中实现以下要求 q1 = parent.objects.filter(chile_1__isnull=True).filter(chile_1__name='blog').values('chile_1__id').extra(select = {"id":"chile_1__id"}) q2 = parent.objects.filter(chile_2__isnu

我有2个表,想在结果集上实现union吗? 我已经包装了一个父模型,并将其Pk作为FK包含在两个子表中,并在rest框架中实现以下要求

q1 = parent.objects.filter(chile_1__isnull=True).filter(chile_1__name='blog').values('chile_1__id').extra(select = {"id":"chile_1__id"})

    q2 = parent.objects.filter(chile_2__isnull=True).filter(chile_2__name='blog1').values('chile_2__id').extra(select = {"id":"chile_2__id"})
甚至当我运行下面的for union时,我也创建了包含不同字段名的两个子项的别名

q3 =  q1 | q2
显示以下错误

TypeError:合并“GeoValuesQuerySet”类必须涉及相同的 每种情况下的值

有人会告诉我如何通过父母获得孩子的价值观吗?
谢谢。

您可能使用了模型序列化程序。为了序列化两个或多个不同的模型,您需要编写一个非基于模型的序列化程序。然后在API中,使用itertools.chain获取并附加它们,以绑定它们并将结果转换为列表。然后将列表传递给序列化程序。。。等等

希望这能有所帮助-其余的文档中都有

编辑:例如:



    class MyCustomSerializer(serializers.Serializer):
        object_pk = serializers.IntegerField(source='pk')
        name = serializers.CharField()
        goloc = serializers.CharField(source='get_geoloc')

    class MyCustomViewset(viewsets.ModelViewSet):
        serializer_class = MyCustomSerializer
        def list(self, request):
            mylist = []
            # q1 and q2 querysets need still to be fetched...
            for o in q1:
                mylist.append(o)
            for o in q2:
                mylist.append(o)
            queryset = mylist
            serializer = MyCustomSerializer(queryset, many=True)
            return Response(serializer.data)


我用的是模架消毒器。我可以在同一个应用程序中同时使用基于模型的序列化和基于非模型的序列化吗?可以!我强烈建议您阅读rest教程和api指南,我是否回答了您的问题?所有的best@phil当我尝试“列表”对象没有属性“克隆”时出现此错误对不起,信息太少。请提出另一个问题;提供相关代码和错误消息。