

def get_ordering(self, request=None, queryset=None):
    "\n        Returns the list of ordering fields for the change list.\n        First we check the get_ordering() method in model admin, then we check\n        the object's default ordering. Then, any manually-specified ordering\n        from the query string overrides anything. Finally, a deterministic\n        order is guaranteed by ensuring the primary key is used as the last\n        ordering field.\n        "
    if (queryset is None):
        return super(DocumentChangeList, self).get_ordering()
    params = self.params
    ordering = list((self.model_admin.get_ordering(request) or self._get_default_ordering()))
    if (ORDER_VAR in params):
        ordering = []
        order_params = params[ORDER_VAR].split('.')
        for p in order_params:
            try:
                (none, pfx, idx) = p.rpartition('-')
                field_name = self.list_display[int(idx)]
                order_field = self.get_ordering_field(field_name)
                if (not order_field):
                    continue
                ordering.append((pfx + order_field))
            except (IndexError, ValueError):
                continue
    sign = (lambda t: (((t[1] > 0) and '+') or '-'))
    qs_ordering = [(sign(t) + t[0]) for t in queryset._ordering]
    ordering.extend(qs_ordering)
    pk_name = self.lookup_opts.pk.name
    if (not (set(ordering) & set(['pk', '-pk', pk_name, ('-' + pk_name)]))):
        ordering.append('pk')
    return idx

dataset/ETHPy150Open MongoEngine/django-mongoengine/django_mongoengine/mongo_admin/views.py DocumentChangeList.get_ordering/VarMisuse@282/483 `ordering`->`idx`