0
我正在Django上创建一个搜索页面,并且想要生成一个动态查询集。如何在Python中的另一个列表中填充列表循环?
我有串过滤器的列表initiaized这样的:
filter_names = ('filter1', 'filter2')
的话,我想在我的filter_names列表循环,并提出附带请求中的每个滤波器的Q对象的列表(在filter_names中使用相同的名称)。我创建Q的名单如下:
filter_clauses = [Q(filter=request.GET.get(filter))
for filter in filter_names
if request.GET.get(filter)]
问题是结果的列表(filter_clauses)是一样的东西:
Q(filter=value1),
Q(filter=value2)
但其实我是想像一个列表:
Q(filter1=value1),
Q(filter2=value2)
实际上,循环没有捕获变量过滤器的值,而是将其解释为“过滤器”。
那么,我在循环中做了什么错误?
欲了解更多信息,我把这个想法从这个answer,而且我得到这个错误:
Cannot resolve keyword 'filter' into field.
,这意味着,该框架在名为“搜索模式搜索字段过滤器“,并显然没有找到它。