How to modify Django admin filter's title
You will need to have a custom filter class, but you can actually implement a custom filter class factory that you can use everywhere you just need a filter with a custom title:
from django.contrib import admindef custom_titled_filter(title): class Wrapper(admin.FieldListFilter): def __new__(cls, *args, **kwargs): instance = admin.FieldListFilter.create(*args, **kwargs) instance.title = title return instance return Wrapper
After that in your ModelAdmin
class:
list_filter = ( ('fieldname', custom_titled_filter('My Custom Title')), 'plain_field', ...)
(Note how the custom filter is not just a field name, but a tuple of (field_name, CustomFilterClass)
, you're just getting your CustomFilterClass
from your custom_titled_filter()
factory)
if you define labels on your fields in your model, you should see the change on filter options: Like,
is_staff = models.BooleanField(verbose_name="My Best Staff's", default=False)
Here "My Best Staff's" is filter Label.