custom django django-admin

custom - Django admin-ordenando list_filter



django admin search text (1)

Tengo ''versión'' en list_filter, y quiero que la última versión esté después del elemento de lista ''Todo''. En este caso, ¿cómo ordeno la lista descendente? (Todos, 3.6.99.108,3.6.99.107 ...)


Defina el orden predeterminado en la clase Meta modelo:

class MyModel(models.Model): # some model fields here class Meta: ordering = [''-version'',]

Si de alguna manera no cumple con su propósito, puede escribir su propio filtro de lista personalizado:

from django.utils.translation import ugettext_lazy as _ from django.contrib.admin import SimpleListFilter class VersionFilter(SimpleListFilter): title = _(''version'') parameter_name = ''version'' def lookups(self, request, model_admin): qs = model_admin.queryset(request) return [(i, i) for i in qs.values_list(''version'', flat=True) / .distinct().order_by(''-version'')] def queryset(self, request, queryset): if self.value(): return queryset.filter(version__exact=self.value()) class MyModel(ModelAdmin): list_filter = (VersionFilter,)

Si obtiene el siguiente error AttributeError: object has no attribute ''queryset'' entonces probablemente esté usando Django 1.5+ use .get_queryset() lugar, por ejemplo

qs = model_admin.get_queryset(request)