我需要帮助一个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开头的,我在这里做错了什么?感谢。
答案 0 :(得分:2)
答案 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;'?