diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-04-16 21:59:05 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-04-16 21:59:05 +0200 |
commit | 93d9541ef82deb918f721cb74377e630d271de7d (patch) | |
tree | c03fa02e2f6807b60af9ef1d626816c839b73983 /ishtar_common/views.py | |
parent | 7237977a48f35c4f5dc5e496037cba8dfb07f0b4 (diff) | |
download | Ishtar-93d9541ef82deb918f721cb74377e630d271de7d.tar.bz2 Ishtar-93d9541ef82deb918f721cb74377e630d271de7d.zip |
Manage OR condition in searches
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 42e826103..346edc0d7 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -229,7 +229,17 @@ def get_item(model, func_name, default_name, extra_request_keys=[], or_reqs = [] for req in dct.copy(): for k_hr in HIERARCHIC_FIELDS: - if req.endswith(k_hr + '__pk'): + if type(req) in (list, tuple): + val = dct.pop(req) + q = None + for idx, r in enumerate(req): + if not idx: + q = Q(**{r:val}) + else: + q = q | Q(**{r:val}) + or_reqs.append(q) + break + elif req.endswith(k_hr + '__pk'): val = dct.pop(req) reqs = Q(**{req:val}) req = req[:-2] + '__' |