【问题标题】:Change admin form name for overridden User更改被覆盖用户的管理表单名称
【发布时间】:2019-12-06 14:23:07
【问题描述】:

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

这是我的配置文件应用程序的 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”,但没有任何乐趣。归根结底,我可以忍受这个,因为它只是管理界面,但它困扰着我......

【问题讨论】:

    标签: python django python-3.x django-admin django-2.2


    【解决方案1】:

    您应该使用verbose_name_plural 设置im model 类不在表单类中:

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

    【讨论】:

    • 该死!我知道这会很简单:)谢谢!
    猜你喜欢
    • 2012-07-09
    • 1970-01-01
    • 2017-01-04
    • 2013-01-31
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 2013-10-27
    • 2016-12-11
    相关资源
    最近更新 更多