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

时间:2018-10-13 14:21:48

标签: python django python-social-auth

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

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

最好避免以可编辑模式从pip安装模块,而只是替换管理站点中的verbose_name

可能我可以通过其他方式替换管理站点中的型号名称吗? 我曾考虑过将自定义链接添加到管理站点,但是由于它感觉很hacky,因此尚未对其进行研究。

1 个答案:

答案 0 :(得分:1)

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

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