Python 如何使用rest框架在django中进行复杂过滤?

Python 如何使用rest框架在django中进行复杂过滤?,python,django,django-views,Python,Django,Django Views,我有Tipo_Unidad的两个子类别,因此我通过获取Tipo_Unidad的ID发送,这取决于选中的复选框,但我有一个问题,当我同时选择两个类别时,我以这种格式发送ID[1,2],我不知道如何在django视图中使用for循环来获取每个收到的ID的查询 这是我观点的一部分: q = request.GET.get('tipo_venta') i = request.GET.getlist('id_tipo_unidad[]') maxi = request.GET

我有Tipo_Unidad的两个子类别,因此我通过获取Tipo_Unidad的ID发送,这取决于选中的复选框,但我有一个问题,当我同时选择两个类别时,我以这种格式发送ID[1,2],我不知道如何在django视图中使用for循环来获取每个收到的ID的查询

这是我观点的一部分:

    q =  request.GET.get('tipo_venta')
    i =  request.GET.getlist('id_tipo_unidad[]')
    maxi =  request.GET.get('Max')
    mini =  request.GET.get('Min')

if q  is not None or i is not None or maxi is not None  or mini is not None:
        for var in i:
            unidad = Unidad.objects.filter(id_tipo_unidad=var)
            serializer = UnidadSerializer(unidad, many=True)
            return Response(serializer.data)
else:
         return Response({})
如果我只发送一个ID,代码会工作,但如果我发送两个ID,代码就不工作,django控制台会显示:


以10为基数的int()的文本无效:“1,2”

有一个字段查找,用于查找您试图执行的操作-您可以执行以下操作:

q = [1, 2]
unidad = Unidad.objects.filter(id__in=q)
这将为您提供列表
q
id
的所有
Unidad
对象。您还可以跨越与以下各项的关系:

q = [1, 2]
unidad = Unidad.objects.filter(some_other_model__id__in=q)