Изменение названия (множественное число слов) в пользовательском админе.TabularInline
В моем пользовательском интерфейсе администратора Django я использую TabularInline
вот так:
class MyCustomInline(admin.TabularInline):
# ...
def get_queryset(self, request):
# ...
Переопределенные функции добавляют фильтр, так что отображается только подмножество связанных объектов. В административном интерфейсе я получаю таблицу, использующую множественное число класса модели в качестве названия, что в данном случае неправильно. Я хотел бы дать ей пользовательское имя.
Я не могу сделать это для самой модели, потому что я хочу изменить заголовок только для этого отфильтрованного набора. Не для класса модели в целом.
Я попытался разобраться с этим в исходном коде. В шаблоне я обнаружил, что verbose_name
передается через opts
, но не смог проследить его путь, чтобы найти способ переопределить его.
Может кто-нибудь подсказать мне, как изменить заголовок aka verbose name только для этого конкретного TabularInline
?
Вы можете ввести его в extra_context
:
class MyCustomInline(admin.TabularInline):
# …
def _changeform_view(self, request, object_id, form_url, extra_context):
return super()._changeform_view(
self,
request,
obj_id,
form_url,
{**extra_context, 'title': 'sample-title'},
)
def get_queryset(self, request):
# …