Django Q链接查询

时间:2012-10-26 13:06:57

标签: django chain django-q

我需要帮助一个Django Q查询我试图串起来,它看起来是正确的,但它不是很有效。查询是

( Q(src__lte=4) & Q(src__startswith='2') ) | 
( Q(src__gt=4) & ~Q(src__istartswith='713') & ~Q(src__istartswith='281') ) )

我想要完成的是“选择src小于4并且开始2或者src大于4并且不以713 OR 281开始”

结果显示src是以713和281开头的,我在这里做错了什么?感谢。

3 个答案:

答案 0 :(得分:2)

似乎你是混合型。 src是一个int还是一个字符串?是一致的。

答案 1 :(得分:0)

你忘了放一个支架,

-->> ( <<-- (Q(src__lte=4) & Q(src__startswith='2')) | (Q(src__gt=4) & ~Q(src__istartswith='713') & ~Q(src__istartswith='281')))

要么你必须删除最后一个。

或者你没有粘贴整行......

你可能想试试这个:

(Q(src__gt=4) & !(Q(src__startswith=u'713') | Q(src__startswith=u'281'))

你的'src'是什么类型的数据?整数还是字符串?

答案 2 :(得分:0)

您是否尝试使用'和'代替'&amp;'?

相关问题