Как установить verbose_name для внешней модели приложения в Django? - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь установить verbose_name для модели SocialAuthUser из django_social .

Я пытался использовать прокси-модель, установив для Meta.verbose_name желаемое значение, но безуспешно (вероятно, я сделал это неправильно).Если это путь, я могу предоставить более подробную информацию.

Было бы здорово не устанавливать модуль из pip в редактируемом режиме, просто заменить verbose_name на административном сайте.

Возможно, яМожно ли заменить название модели на сайте администратора другим способом?Я думал о добавлении пользовательской ссылки на сайт администратора, но пока не исследовал этот метод, потому что он кажется хакерским.

1 Ответ

0 голосов
/ 13 октября 2018

Вы почти правильно поняли.Чтобы изменения прокси-модели вступили в силу, вам необходимо сначала отменить регистрацию модели на сайте администратора, а затем зарегистрировать модель прокси.

Пример ниже приведен для social_django.Association модели.

# admin.py
from django.contrib import admin
from social_django.admin import AssociationOption
from social_django.models import Association


class AssociationProxy(Association):
    class Meta:
        proxy = True
        verbose_name = 'custom model'
        app_label = 'social_django'


admin.site.unregister(Association)
admin.site.register(AssociationProxy, AssociationOption)

Предполагается, что вы используете сайт администратора по умолчанию

# urls.py
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]
...