python - 在后端扩展模型
问题描述
我有以下序列化程序
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'})
解决方案
推荐阅读
- string - 将具有多个分隔符的字符串列拆分为数组
- python - 不使用 pytest no-capture 时运行子进程失败
- javascript - 由于某种原因,在将 onClick 事件映射到
- 行不通
- asp.net - ASP.Net 更新面板放置
- here-api - HERE API v8 是否支持自行车路线?
- c# - C# - 从串口抓取数据在 200kb/s 以上变得太慢
- bash - bash 完成:按 TAB 时的描述文本(用于自动完成的 heredoc)
- angular - 根据前一个动作的结果有条件地分派一个动作
- c - (合并排序)代码没有打印任何内容
- vba - 附加 Word docx 文件,同时保持 VBA 格式