list_filter 以选项作为值
list_filter with choices as values
我有一个带有布尔字段的 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
,所以它看起来像这样
我能够通过实施自定义列表过滤器来解决
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]
我有一个带有布尔字段的 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
,所以它看起来像这样
我能够通过实施自定义列表过滤器来解决
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]