def __generate_request_filter(filters):
""" Generates filters from filter query string
"""
where = [Q()]
if 'where' in filters and len(filters['where']):
keys = set(k for k in filters['where'])
if 'like' in keys:
for i in filters['where']['like']:
for key, val in i.iteritems():
field = key + '__icontains'
where.append(reduce(operator.or_, [Q(**{field: val[0]})]))
where = reduce(operator.and_, where)
else:
where = reduce(operator.and_, where)
return where
评论列表
文章目录