【发布时间】:2013-07-03 11:17:05
【问题描述】:
我有这个问题:
search = request.GET['q']
Entries = Entry.objects.filter(Q(field1__icontains=search), Q(field2__icontains=search), Q(field3__icontains=search))
有没有一种优雅的方法可以让这个更干净? (我的意思是让Q(var_field__icontains=search) 之类的东西通用,并且var_field 将从请求的帖子中检索,该帖子是这些值字段1、字段2、字段3 之一)。
【问题讨论】:
-
我认为它现在看起来还不错。不过你可以试试这个方法:stackoverflow.com/questions/4487054/…
-
@matino 如果
Q对象的数量是固定的,不要理会reduce,它只会让你的代码变得混乱。只需直接使用or或and将三个Qs 组合起来即可。 -
在 Python 3.x 中,reduce 已从标准内置函数移至 functools 模块。
-
@matino:+1(有用的链接)
标签: django