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