Ty będzie trzeba mieć klasę filtr niestandardowy, ale rzeczywiście można zaimplementować fabryki klasy niestandardowy filtr, który można wykorzystać wszędzie wystarczy filtr z tytułu niestandardowe:
from django.contrib import admin
def 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
Po tym w swojej klasie ModelAdmin
:
list_filter = (
('fieldname', custom_titled_filter('My Custom Title')),
'plain_field',
...
)
(Zauważ, że filtr niestandardowy to nie tylko nazwa pola, ale krotką (field_name, CustomFilterClass)
, jesteś po prostu zaczyna swój CustomFilterClass
fr om swoją fabrykę custom_titled_filter()
)
Nieoczywisty sposób, napisanie niestandardowego filtra jest najprostszym sposobem. W przeciwnym razie musisz przesłonić 'ChangeList.get_filters' lub zmodyfikować tytuł w locie poprzez JavaScript. – okm
Modyfikowanie JS byłoby bardzo nie pytoniczne. Niemożliwe do śledzenia i złe podczas fazy konserwacji. – iankit