我有一个包含 13 个复选框的表单,这些复选框共同构成了我的搜索条件……除了我还为 ALL 或 ANY 添加了一对单选按钮。
我希望能摆脱一些优雅的事情,比如:
priority_ids = request.GET.getlist("priority") # checkboxes
collection = request.GET.get("collection") # radio buttons
priorities = []
for priority_id in priority_ids:
priorities.append(Q(focus__priority=priority_id))
if (collection == "any"): qset = any(priorities)
elif (collection == "all"): qset = all(priorities)
但是,any() 和 all() 返回一个布尔值,而不是我可以在过滤器中使用的查询集。我想要一个与“Q(...) | Q(...) | Q(...)”或“Q(...) & Q(.. .) & Q(...)" 适用于 1 到 13 个标准。