我有一个表单,允许用户按多个年龄范围选择用户:18-24、25-34、35-44等。当前,如果用户选择多选列表中的前两个字段,查询将返回用户18-34。如果一个用户选择18-24岁和35-44岁,它将包括18-44岁的所有年龄段,而不应该包括25-34岁的用户。在
在用户窗体选择之前,如果不知道需要筛选的范围的数量,如何在查询中包含多个范围过滤器?在
如果你知道用户将要过滤的年龄范围的数量,我知道你可以使用Q链接范围查询
这是我当前的查询:
query = User.objects.filter(
gender__in=genders,
created__in=dates,
data_source__in=sources,
dob__range=[dob_from, dob_to]
)
提前谢谢。在
正如您在问题中所说,您可以使用
Q()
对象并将它们组合在一起。你不知道会有多少Q()
对象,这不是问题。生成Q()对象的列表,然后将该列表缩减为一个Q()
。在如果您不熟悉
^{pr2}$reduce
和or_
,则可以通过循环列表得到相同的结果:相关问题 更多 >
编程相关推荐