#python #django #django-admin
#python #django #django-администратор
Вопрос:
У меня есть Billing
модель с логическим полем
class Billing(models.Model):
...
is_paid = models.BooleanField(verbose_name='Statut', default=False, choices=[(True, 'Payée'), ('False', 'Non payée')])
...
Это администратор Django
class BillingAdmin(BaseOnlyModelAdmin):
...
list_display = ['month', 'year', 'date', 'is_paid']
list_filter = ['is_paid']
...
is_paid
корректно отображается как Payée / Non payée
при перечислении
Но для list_filter
этого он переведен на Oui / Non
Как я могу изменить это поведение? Я хочу, чтобы он отображался choices
, чтобы он выглядел так
Ответ №1:
Я смог исправить это, внедрив пользовательский фильтр списка
from django.contrib.admin import SimpleListFilter
class BillingStatusFilter(SimpleListFilter):
title = 'Statut'
parameter_name = 'is_paid'
def queryset(self, request, queryset):
if self.value():
return queryset.filter(is_paid__exact=self.value())
def lookups(self, request, model_admin):
return model_admin.model.STATUS
list_filter = [BillingStatusFilter]