更改覆盖用户的管理表单名称
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"
我通过扩展 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"