6
我必須作出一個查詢,將得到包含「wd2」子字符串或不包含「wd」字符串的記錄。有沒有什麼辦法可以很好地做到這一點?Django查詢:如何使包含OR not_contains查詢
似乎是這樣的:
Record.objects.filter(Q(parameter__icontains="wd2") | Q(## what should be here? ##))
我必須作出一個查詢,將得到包含「wd2」子字符串或不包含「wd」字符串的記錄。有沒有什麼辦法可以很好地做到這一點?Django查詢:如何使包含OR not_contains查詢
似乎是這樣的:
Record.objects.filter(Q(parameter__icontains="wd2") | Q(## what should be here? ##))
從Django的q object documentation:
您可以用Q對象與&並結合構成的任意複雜的報表|運算符並使用括號分組。此外,Q對象可以使用〜經營者被否定,允許合併查找,結合雙方正常的查詢和否定(NOT)查詢:
Q(question__startswith='Who') | ~Q(pub_date__year=2005)
因此,我建議
Record.objects.filter(Q(parameter__icontains="wd2") | ~Q(parameter__icontains="wd"))
哇,不知道〜操作員。非常感謝你! – DataGreed 2010-02-25 15:28:25
難道不是優雅嗎?我喜歡在更高層次的組合範例中重用低級邏輯思想! – 2010-02-26 15:57:07