首页 > 解决方案 > 在后端扩展模型

问题描述

我有以下序列化程序

    class OrdenTrabajoserializer(BaseSerializer):

        class Meta:
            model = Orden_trabajo
            fields = '__all__'

            expandable_fields = {
                'vehiculo': (Vehiculoserializer, { 'many': False }),
                'asesor': (Tecnicoserializer, { 'many': False }),
                'servicio_orden_registro': (Orden_registroserializer2, { 'many': True })
            }

当我从前端发出请求并且我想要一个扩展字段时,我执行端点,它正确地为我带来了扩展对象

未展开

   {{url...}}/

    response: 
              { 
               orden: 1,
               .
               .
               .         
               vehiculo: 32
              }

展开

    {{url...}}/?expand=vehiculo/

    response: 
              { 
               orden: 1,
               .
               .
               .         
               vehiculo: { id: 32, color: 'blue', ...data }
              }

问题是我想直接在后端做同样的事情

这是视图集,根据我搜索的信息,它告诉我应该放置“permit_list_expands”

但我不知道该怎么做才能使用它并扩展它......

        class facturarOrdenV2viewSet(generics.ListAPIView):
                queryset = Orden_trabajo.objects.all()
                serializer_class = OrdenTrabajoserializer
                permit_list_expands = ['vehiculo', 'asesor', 'servicio_orden_registro']


                def post(self, request, *args, **kwargs):
                    orden = self.kwargs.get('orden', None)
                    ordenTrabajo = self.queryset.get(pk = orden)
                    dict_obj = model_to_dict(ordenTrabajo)
                    print(dict_obj)

                    return Response({'OK'})

标签: pythondjangodjango-rest-framework

解决方案


推荐阅读