def add_ordering(self, *ordering): new_ordering = [] for order in ordering: field_name, dirn = get_order_dir(order) new_name = expand_lookup(self.get_meta(), field_name) if dirn == 'DESC': new_name = '-%s' % new_name new_ordering.append(new_name) return super(MultilingualQuery, self).add_ordering(*new_ordering)
def build_filter(self, filter_expr, branch_negated=False, current_negated=False, can_reuse=None): """ Build filters with respect to the multilingual fields. """ arg, value = filter_expr parts = arg.split(LOOKUP_SEP) field_name = parts[0] new_name = expand_lookup(self.get_meta(), field_name) filter_expr = LOOKUP_SEP.join([new_name] + parts[1:]), value return super(MultilingualQuery, self).build_filter(filter_expr, branch_negated=branch_negated, current_negated=current_negated, can_reuse=can_reuse)
def add_fields(self, field_names, allow_m2m=True): opts = self.get_meta() new_field_names = [expand_lookup(opts, f) for f in field_names] return super(MultilingualQuery, self).add_fields(new_field_names, allow_m2m=allow_m2m)