我必须进行查询,以获取包含“wd2”子字符串或根本不包含“wd”字符串的记录。有没有办法做得很好?
似乎是这样的:
Record.objects.filter( Q(parameter__icontains="wd2") | Q( ## what should be here? ## ) )
答案 0 :(得分:13)
来自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") )