私はフィルターを持っています(デフォルトの1つでカスタムではありません)
まったく新しいカスタムフィルターを作成せずに、フィルターのタイトルを変更するだけで可能ですか?
フィルタから必要なカスタマイズはタイトルだけだからです。これは、フィルター全体とルックアップを書き直さずにそれを行う方法である必要があります。
willカスタムフィルタークラスが必要ですが、実際には、カスタムタイトルのフィルターが必要な場所ならどこでも使用できるカスタムフィルタークラスファクトリを実装できます。
_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
_
その後、ModelAdmin
クラスで:
_list_filter = (
('fieldname', custom_titled_filter('My Custom Title')),
'plain_field',
...
)
_
(カスタムフィルターが単なるフィールド名ではなく、_(field_name, CustomFilterClass)
_のタプルであることに注意してください。custom_titled_filter()
ファクトリからCustomFilterClass
を取得しているだけです)
モデルのフィールドにラベルを定義すると、フィルターオプションの変更が表示されます。
is_staff = models.BooleanField(verbose_name="My Best Staff's", default=False)
こちらの「MyBestStaff's」はフィルターラベルです。