diff options
-rw-r--r-- | ishtar_common/views_item.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 1a0ef61e7..d00256877 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -587,7 +587,8 @@ def _manage_hierarchic_fields(dct, and_reqs): q |= Q(**{r: val}) and_reqs.append(q) break - elif req.endswith(k_hr + '__pk'): + elif req.endswith(k_hr + '__pk') \ + or req.endswith(k_hr + '__label__iexact'): val = _clean_type_val(dct.pop(req)) if u";" in val: @@ -597,8 +598,14 @@ def _manage_hierarchic_fields(dct, and_reqs): values = [val] base_req = req[:] reqs = None + if req.endswith('pk'): + base_suffix = "pk" + elif req.endswith('label__iexact'): + base_suffix = "label__iexact" + else: + continue for val in values: - suffix = "pk" + suffix = base_suffix[:] req = base_req[:] if val.startswith(u'"') and val.startswith(u'"'): @@ -609,7 +616,7 @@ def _manage_hierarchic_fields(dct, and_reqs): else: suffix = "label__iexact" val = val[1:-1] - req = req[:-2] + suffix + req = req[:-(len(base_suffix))] + suffix if not reqs: reqs = Q(**{req: val}) |