如何在Django中组合过滤器

时间:2013-07-18 15:40:52

标签: python django filter

我有这段代码

 session_inicio = django_filters.Filter(lookup_type = 'gte',
                                               label = 'session_inicio',
                                               name='session_inicio')

我想在我的查询中加入另一个条件......

session_end = django_filters.Filter(lookup_type = 'lte',
                                               label = 'session_end',
                                               name='session_end')

为了得到这样的东西:

rangedates = session_inicio || session_end

有可能做这样的事吗?

1 个答案:

答案 0 :(得分:0)

我不相信普通的QuerySet对象支持那些运算符,但

您可以动态构建kwargs字典并使用**

传递它
dynamic_lookup_dict = {}

if condition:
  dynamic_lookup_dict['session_inicio__gte'] = 'avalue'
elif other_condition:
  dynamic_lookup_dict['session_inicio__lte'] = 'avalue'

django_filters.filter(**dynamic_lookup_dict)