似乎__in
仅适用于整数。我试图按字符串过滤。
我试过这个,但它不起作用。
groups = ['foo', 'bar']
args = []
for group in groups:
args.append(Q(name=group))
group_ids = Group.objects.filter(*args)
使用字符串动态过滤Django查询集的首选方法是什么?
答案 0 :(得分:2)
您的查询正在执行所有这些值的and
,我认为您需要or
?尝试:
query = Q(name=groups[0])
for group in groups[1:]:
query |= Q(name=group)
group_ids = Group.objects.filter(query)
答案 1 :(得分:0)
__in
可用于字符串,因为它转换为SQL IN
操作。是否区分大小写取决于您的表/列整理。