自定义字段未显示在管理页面中

时间:2021-02-08 13:46:21

标签: python-3.x django django-models

我为我的项目创建了一个自定义用户模型。我创建的额外文件没有显示在管理页面中。

我只看到标准字段,没有额外制作。 我无法在网上找到任何关于我遗漏的信息。

我的自定义用户模型:

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)

此外,“名字”和“姓氏”字段与我的自定义用户模型不同。 enter image description here

2 个答案:

答案 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