1

Django Q クエリをつなぎ合わせようとしているのに少し助けが必要です。正しく見えますが、うまく機能していません。クエリは

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

私が達成しようとしているのは、「src が 4 未満かつ startiwth 2 である OR src が 4 より大きく、713 または 281 で始まらない場所を選択する」ことです。

結果は 713 と 281 で始まる src を示しています。ここで何が間違っていますか? ありがとう。

4

3 に答える 3

2

ミックスタイプのようです。src は int ですか、それとも文字列ですか? 一貫してください。

于 2012-10-26T20:54:23.883 に答える
0

「&」の代わりに「and」を使用してみましたか?

于 2012-10-26T15:18:00.623 に答える
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」はどのタイプのデータですか?整数または文字列?

于 2012-10-26T13:50:38.377 に答える