django数据库api使用<>中的值字符串的子句

时间:2014-09-19 06:03:45

标签: django django-database

使用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建议如何使其适用于字符串:

1 个答案:

答案 0 :(得分:0)

我的错误发布问题太早找到了使用

处理此问题的简便方法
formset = pocketTransactionFormset(queryset=Pockets.objects.filter(pocket_owner=request.user).filter(pocket_name__in=[p1,p2]))