我正在 Django 中创建自定义用户模型。我已经定义了一个自定义用户模型 (users.CustomUser),它是 AbstractBaseUser 的子类。我创建了一个自定义用户管理器 (users.CustomUserManager),它是 BaseUserManager 的子类并且可以正常工作。我还创建了一个自定义用户管理员,它是 UserAdmin 的子类,因为我的 CustomUser 模型没有用户名字段(它使用“电子邮件”代替)。
据我所知,我已经正确编码了所有内容,但是当我运行“python manage.py makemigrations”时,我收到一条错误消息:
<class 'users.admin.CustomUserAdmin'>: (admin.E033) The value of 'ordering[0]' refers to 'username', which is not an attribute of 'users.CustomUser'.
Run Code Online (Sandbox Code Playgroud)
我被困在这里。
我已经尝试了以下操作:(1)在我的自定义用户模型类中将用户名字段定义为电子邮件(2)尝试在我的自定义用户模型类和自定义用户管理员中将用户名设置为无(3)创建自定义用户注册和更改表单并将它们注册到我的自定义用户管理员
<class 'users.admin.CustomUserAdmin'>: (admin.E033) The value of 'ordering[0]' refers to 'username', which is not an attribute of 'users.CustomUser'.
Run Code Online (Sandbox Code Playgroud)
# models.py
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, PermissionsMixin
from phonenumber_field.modelfields import PhoneNumberField
from .managers import CustomUserManager
class CustomUser(AbstractBaseUser, PermissionsMixin):
username = None
firstname = …Run Code Online (Sandbox Code Playgroud)