python - 查询一对多和id数组
问题描述
首先我有这个问题:我想向后端发送一个 id 数组,然后搜索与该 id 相关的一些东西。但我不知道如何发送数组,我正在使用这种形式。我应该如何将数组传递给该 url?
var ids = [1,3,34,76,114] ... await self._list (`1.0/cda/inventariov/`, (response) => {})
第二:我在后端有这个网址
router.register (r'tecnico', viewsets.TecnicoViewSet)
这是视图集
class TecnicoViewSet (
mixins.CreateModelMixin,
mixins.UpdateModelMixin,
mixins.RetrieveModelMixin,
mixins.ListModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet):
queryset = Technician.objects.all ()
serializer_class = Tecnicoserializer
def list (self, request):
data = request.data
# [1,23,43,65]
return Response(data)
当我从第 1 步收到数组时,我想在不同的表中搜索与 id 相关的所有信息。
前面说了,我收到了要咨询的技术人员的id,model是work_orders,所以我想获取每个技术人员下的所有工单。
除此之外,我还需要对同一视图集中的其他模型进行更多查询,但我认为这就足够了。
这是 tecnico 模型
class Tecnico(BaseModel):
foto = models.ImageField(blank=True, null=True, verbose_name='Foto tecnico', upload_to='cda/pictures')
empleado = models.IntegerField(null=True)
categoria_tecnicos = models.ForeignKey('cda_configuracion.listaitems', related_name='Categoria_tecnico', on_delete=models.PROTECT)
activo = models.BooleanField(default=False)
disponibilidad = models.IntegerField(default=0)
nombre_completo = models.CharField(max_length=50, blank=True)
documento = models.CharField(max_length=50, blank=True)
password = models.CharField(max_length=50, blank=True)
def __str__(self):
return self.empleado.nombre_completo
def obtenerCategoria(self):
return self.categoria_tecnicos.name
def obtenerTecnico(self):
return self.empleado.nombre_completo
class Servicio_realizados_orden_trabajo(BaseModel):
STATETIPO = (
(1, 'sin_entregar'),
(2, 'solicitado'),
(3, 'entregado'),
(4, 'devuelto'),
(5, 'email'),
(6, 'aceptado'),
(7, 'rechazado'),
(8, 'facturado')
)
orden_trabajo = models.ForeignKey(Orden_trabajo, on_delete=models.CASCADE, related_name="orden_trabajo")
tecnico = models.ForeignKey(Tecnico, on_delete=models.CASCADE, related_name="tecnicos", null=True)
servicio_genesis = models.IntegerField(blank=True, null=True)
nombre_servicio = models.CharField(max_length=150,default='')
cantidad = models.IntegerField(blank=True, null=True)
precio = models.DecimalField(decimal_places=2, max_digits=10, blank=True, null=True)
disponible = models.BooleanField(default=False)
servicio_autorizado = models.IntegerField(blank=True, null=True)
tipo = models.IntegerField(default=0)
tipo_servicio = models.IntegerField(default=0)
cotizacion = models.BooleanField(default=True)
almacenista = models.ForeignKey(Tecnico, on_delete=models.CASCADE, related_name="almacenista", null=True)
tecnicorecibe = models.ForeignKey(Tecnico, on_delete=models.CASCADE, related_name="tecnicosreciben", null=True)
kardex = models.IntegerField(blank=True, null=True)
state = models.SmallIntegerField(choices=STATETIPO, default=1)
解决方案
推荐阅读
- c++ - 将重载函数转换为函数指针元组的方法
- jquery - 如何将 Html.TextBox 值与 Controller 和 Html.Action 一起使用?
- php - 在 MySQL 中使用 PHP 进行搜索
- c# - 如何在 Unity3D 中创建类似 Snake vs Block 的运动
- postgresql - 在 Postgresql 中创建分区表
- php - Laravel 5.1 中返回函数和调用函数的区别
- python - ValueError: int() 以 10 为底的无效文字:'11,440'
- javascript - 如何获得什么都不做的链接
- javascript - 教代码数学运算
- css - UI Kit 导航栏和按钮中的垂直对齐错误