考虑这个网址:
www.anysite.com/get_count/?sex=5&sex=6&city=5&city=7&job=7&job=8......
用于 View 中的动态查询:
model = anyModel.objects.filter(sex=5).filter(sex=6).filter(city=5)....
如何在此查询中插入 url 参数?
最佳答案
像这样的东西怎么样?
model = anyModel.objects
for k,vals in request.GET.lists():
for v in vals:
model = model.filter(**{k: v})
或者,如果您想更改过滤器的类型(例如,__contains
),您可以将最后一行替换为类似以下内容:
model = model.filter(**{"%s__contains" % k: v})
如果您想将 get 变量的多个值解释为 OR
,另一种选择是使用 in
比较:
model = anyModel.objects
for k,vals in request.GET.lists():
model = model.filter(**{"%s__in" % k: vals})
关于python - 获取用于 django 动态过滤器的 url 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561559/