更改覆盖用户的管理表单名称

Change admin form name for overridden User

我通过扩展 AbstractUser 覆盖了标准的 django 用户。现在一切正常,但由于某种原因我无法让管理员显示 "Profiles"(模型名称现在设置在 settings.AUTH_USER_MODEL 而不是 "Users"。

这是我的 admin.py 配置文件应用程序代码

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.forms import UserChangeForm

from .models import Profile


class ProfileChangeForm(UserChangeForm):
    class Meta(UserChangeForm.Meta):
        model = Profile

        verbose_name_plural = "Profile"


class ProfileAdmin(UserAdmin):
    form = ProfileChangeForm

    # fieldsets = UserAdmin.fieldsets + ((None, {"fields": ("some_extra_data",)}),)
    fieldsets = UserAdmin.fieldsets


admin.site.register(Profile, ProfileAdmin)

我想应该有一些元设置我可以放在这里,但经过大量谷歌搜索后我找不到任何东西。

我确定这是一个简单的答案 - 有人可以为我指出正确的方向吗?我试过设置 "name" 和 "verbose_name",但没有成功。归根结底,我可以忍受这个,因为它只是管理界面,但它让我很烦......

你应该使用 verbose_name_plural 设置 im model class not in form class:

 class Profile(AbstractUser):
    class Meta(UserChangeForm.Meta):
        verbose_name_plural = "Profile"