在djang中定制用户模型和表单

2024-09-27 22:22:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图使用AbstractUser设置一个自定义用户,并添加了几个字段,但是当我在site admin中检查add user表单时,表单字段以不同的顺序出现(首先是密码、组和用户权限,然后是用户名等)

在我的设置中,我已将AUTH\u USER\u模型注册到我的自定义用户类中。我有一个用户类,其中包含一组测试字段,当我运行它时,这些字段按上面指定的顺序出现。然后我创建了一个CustomUserCreationForm和一个CustomUserAdmin来尝试对字段进行排序,但最后只显示了user和password

型号.py

from django.db import models
from django.contrib.auth.models import AbstractUser

# Create your models here.
class User(AbstractUser):
    bio = models.TextField(max_length=500, blank=True)
    location = models.CharField(max_length=30, blank=True)
    birth_date = models.DateField(null=True, blank=True)

表单.py

from django.contrib.auth.forms import UserCreationForm
from .models import User


class CustomUserCreationForm(UserCreationForm):
    class Meta(UserCreationForm.Meta):
        model = User
        fields = ('username', 'email', 'password', 'bio', 'location', 'birth_date')

管理py

from django.contrib import admin
from .models import User
from django.contrib.auth.admin import UserAdmin
from .forms import CustomUserCreationForm


class CustomUserAdmin(UserAdmin):
    add_form = CustomUserCreationForm


admin.site.register(User) #This one shows all the fields scrambled
#admin.site.register(User, CustomUserAdmin) #This one only shows 3 fields on the creation (user, pass and pass_confirm)

我想看到的是类似于Add user表单的常规操作,只是我添加的额外字段和顺序正确

提前谢谢你的输入


Tags: django用户fromimporttrue表单adminmodels

热门问题