如何在 Django 中为外部应用程序模型设置 verbose_name?

How to set verbose_name for external app model in Django?

我正在尝试为来自 django_social 的模型 SocialAuthUser 设置 verbose_name

我尝试使用代理模型,将其 Meta.verbose_name 设置为所需的值,但没有成功(可能我做错了)。如果可以的话,我可以提供更多细节。

最好避免在可编辑模式下从 pip 安装模块只是为了替换管理站点中的 verbose_name

也许我可以用其他方式替换管理站点中的模型名称? 我考虑过将自定义 link 添加到管理站点,但还没有研究这种方法,因为它感觉很老套。

你几乎答对了。要使代理模型的更改生效,您需要先从管理站点注销模型,然后再注册代理模型。

以下示例适用于 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),
]