diff options
Diffstat (limited to 'ishtar/ishtar_base/views.py')
-rw-r--r-- | ishtar/ishtar_base/views.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/ishtar/ishtar_base/views.py b/ishtar/ishtar_base/views.py index 8a3ecb05f..99c2167d7 100644 --- a/ishtar/ishtar_base/views.py +++ b/ishtar/ishtar_base/views.py @@ -203,9 +203,11 @@ def get_item(model, func_name, default_name, extra_request_keys=[], dct[k] = dct[k] == u"2" and True or False # manage hierarchic conditions or_reqs = [] - for k in HIERARCHIC_FIELDS: + for k_hr in HIERARCHIC_FIELDS: + if k_hr not in dct: + continue for req in dct.copy(): - if req.endswith(k + '__pk'): + if req.endswith(k_hr + '__pk'): val = dct.pop(req) reqs = Q(**{req:val}) req = req[:-2] + '__' @@ -223,12 +225,14 @@ def get_item(model, func_name, default_name, extra_request_keys=[], if q and q in request_keys: ks = request_keys[q] if type(ks) not in (list, tuple): - ks = [k] + ks = [ks] for k in ks: if k.endswith("__pk"): k = k[:-len("__pk")] + "__label" q = request_items.get('sord') sign = q and q == u'desc' and "-" or '' + if '__' in k: + k = k.split('__')[0] items = items.order_by(sign + k) datas = [] if old: |