Изменение названия (множественное число слов) в пользовательском админе.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):
        # …
Вернуться на верх