我为我的项目创建了一个自定义用户模型。我创建的额外文件没有显示在管理页面中。
我只看到标准字段,没有额外制作。 我无法在网上找到任何关于我遗漏的信息。
我的自定义用户模型:
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
email = models.EmailField(blank=False, null=False)
firstname = models.CharField(max_length=25, blank=True, null=True)
surname = models.CharField(max_length=45, blank=True, null=True)
mobilephone = models.IntegerField(blank=True, null=True)
def __str__(self):
return self.email
我的 admin.py
from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin
from .forms import CustomUserCreationForm, CustomUserChangeForm
from .models import CustomUser
class CustomUserAdmin(UserAdmin):
add_form = CustomUserCreationForm
form = CustomUserChangeForm
model = CustomUser
list_display = ["surname", "firstname", "email", "mobilephone"]
admin.site.register(CustomUser, CustomUserAdmin)
答案 0 :(得分:1)
因为您创建了一个从 Django 的 UserAdmin
派生的自定义用户管理
您需要修改其中的 fieldsets
属性。
这就是它在 UserAdmin
类中的定义。
fieldsets = (
(None, {'fields': ('username', 'password')}),
(_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
(_('Permissions'), {
'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions'),
}),
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
)
为了将您的字段添加到 Personal info
字段集下,如下所示
fieldsets = (
...
(_('Personal info'), {'fields': ('firstname', 'surname', 'email', 'mobilephone')}),
...
)
答案 1 :(得分:0)
试试这个
class CustomUserAdmin(UserAdmin):
# ----
fieldsets = (
(None, {'fields': (
# in build
('first_name',),
('last_name',),
('username',),
# custom
('surname'),
)
)
更多https://docs.djangoproject.com/en/3.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.fieldsets