我制作了下面的代码,我希望从复选框值为“item”的复选框值中选择id来过滤,我还希望得到变量为“pfast_type”的列。 问题是我只得到最后一项。我没有得到整个清单。我做错了什么?
elif pfast_type and item:
object_list = FP.objects.filter(pk__in=[item]).values('FP_Item',pfast_type)
答案 0 :(得分:2)
After a short investigation in chat, we found out the cause:
问题是item
变量已通过:request.GET.get("fastedit")
解决。最初的目的是将多个值传递给fastedit
查询参数。但是,request.GET.get
仅返回最后一个。
为了解决问题,我们需要使用request.GET.getlist("fastedit")
并将已解决的列表直接传递给filter(pk__in=item)
,而不必像原始代码filter(pk__in=[item])
中那样包含额外的列表
答案 1 :(得分:1)
我不知道item
中的内容,但[item]
是长度为1的列表。因此pk__in=[item]
只能匹配一个主键(如果有)。
只有零个或一个FP对象与过滤器匹配,并且它们都被返回。