Esempio n. 1
0
 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)
Esempio n. 2
0
    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)
Esempio n. 3
0
 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)