Django admin - ordinamento list_filter
ho 'versione' in list_filter, e voglio essere la versione più recente dopo 'All' elemento della lista. In questo caso, come si ordina l'elenco in ordine decrescente? (Tutti, 3.6.99.108,3.6.99.107 ...)
Django admin - ordinamento list_filter
ho 'versione' in list_filter, e voglio essere la versione più recente dopo 'All' elemento della lista. In questo caso, come si ordina l'elenco in ordine decrescente? (Tutti, 3.6.99.108,3.6.99.107 ...)
Definire ordinamento predefinito nel modello Meta
classe:
class MyModel(models.Model):
# some model fields here
class Meta:
ordering = ['-version',]
Se in qualche modo non soddisfa il vostro scopo è possibile scrivere il proprio filtro elenco personalizzato:
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,)
Se si ottiene seguente errore AttributeError: object has no attribute 'queryset'
allora probabilmente si sta utilizzando Django 1.5+
uso .get_queryset()
invece ad esempio,
qs = model_admin.get_queryset(request)
Oppure crea il tuo [filtro] (https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter) se questo non è desiderato il comportamento di ordinamento predefinito –
@Hedde yup ho aggiunto un esempio per questo. Ho visto il tuo commento dopo aver aggiunto l'esempio del filtro personalizzato. Grazie! –
@Airame Adnan, model_admin non ha il metodo 'get_queryset' (' qs = model_admin.get_queryset (request) '). Ha il metodo 'queryset'. Probabilmente è necessario cambiare risposta. – stalk
Eventuali duplicati: http://stackoverflow.com/questions/3258314/how-to-sort-list-filter-labels-for-foreign-key-filters-in-django-admin – tuxcanfly
@tuxcanfly vero , tuttavia questo OP contiene una risposta migliore –