首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在管理员中创建用户时,自定义用户模型中的自定义字段不显示

可能是由于以下几个原因导致的:

  1. 未正确定义自定义字段:首先,确保在自定义用户模型中正确定义了自定义字段。在Django中,可以通过在models.py文件中的用户模型类中添加字段来定义自定义字段。例如,如果要添加一个名为custom_field的自定义字段,可以在用户模型类中添加以下代码:
代码语言:txt
复制
from django.contrib.auth.models import AbstractUser
from django.db import models

class CustomUser(AbstractUser):
    custom_field = models.CharField(max_length=100)
  1. 未进行数据库迁移:在定义完自定义字段后,需要运行数据库迁移命令,以将更改应用到数据库中。可以使用以下命令进行迁移:
代码语言:txt
复制
python manage.py makemigrations
python manage.py migrate
  1. 未在管理员界面中注册自定义用户模型:如果自定义用户模型未在管理员界面中注册,管理员界面将无法显示自定义字段。确保在admin.py文件中注册了自定义用户模型。例如,如果自定义用户模型为CustomUser,可以在admin.py文件中添加以下代码:
代码语言:txt
复制
from django.contrib import admin
from .models import CustomUser

admin.site.register(CustomUser)
  1. 未在管理员界面中自定义用户表单:如果自定义用户模型中的自定义字段仍然不显示,可能是因为默认的用户表单未包含自定义字段。可以通过自定义用户表单来显示自定义字段。首先,创建一个继承自UserCreationFormUserChangeForm的表单类,并添加自定义字段。然后,在admin.py文件中使用form属性将自定义表单与自定义用户模型关联。以下是一个示例:
代码语言:txt
复制
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from .models import CustomUser

class CustomUserCreationForm(UserCreationForm):
    class Meta(UserCreationForm.Meta):
        model = CustomUser
        fields = UserCreationForm.Meta.fields + ('custom_field',)

class CustomUserChangeForm(UserChangeForm):
    class Meta(UserChangeForm.Meta):
        model = CustomUser
        fields = UserChangeForm.Meta.fields + ('custom_field',)

class CustomUserAdmin(UserAdmin):
    add_form = CustomUserCreationForm
    form = CustomUserChangeForm
    model = CustomUser
    list_display = ['username', 'email', 'custom_field']

admin.site.register(CustomUser, CustomUserAdmin)

通过以上步骤,应该能够在管理员中创建用户时显示自定义用户模型中的自定义字段。如果仍然无法显示,请检查以上步骤是否正确执行,并确保自定义字段的命名和定义没有错误。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券