使用django需要返回一个查询集,其中值应为IN变量p1和p2:
p1 = 's'
p2 = 't'
formset_OK=pocketTransactionFormset(queryset=Pockets.objects.filter(pocket_owner=request.user).extra(where=['pocket_name=%s'], params=[p1]))
上面的代码与formset_OK工作,但它将只导致1个值,即s,但是我想要使用SQL的IN子句的值,所以我尝试下面的代码,但它的工作和抛出错误没有这样的列:s :
formset_NOTOK =pocketTransactionFormset(queryset=Pockets.objects.filter(pocket_owner=request.user).extra(where=['pocket_name IN (s,t)']))
Django文档说
Entry.objects.extra(where=['id IN (3, 4, 5, 20)'])
等于
SELECT * FROM blog_entry WHERE id IN (3, 4, 5, 20);
但是当3,4,5,6是字符串时,似乎不是这样。
ANy建议如何使其适用于字符串:
答案 0 :(得分:0)
我的错误发布问题太早找到了使用
处理此问题的简便方法formset = pocketTransactionFormset(queryset=Pockets.objects.filter(pocket_owner=request.user).filter(pocket_name__in=[p1,p2]))