【发布时间】:2010-02-25 14:35:41
【问题描述】:
我必须进行查询以获取包含“wd2”子字符串或根本不包含“wd”字符串的记录。有什么办法可以做得很好吗?
好像是这样的:
Record.objects.filter( Q(parameter__icontains="wd2") | Q( ## what should be here? ## ) )
【问题讨论】:
我必须进行查询以获取包含“wd2”子字符串或根本不包含“wd”字符串的记录。有什么办法可以做得很好吗?
好像是这样的:
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") )
【讨论】: