【发布时间】:2022-01-18 20:33:30
【问题描述】:
我有一个没有用户名但使用电子邮件的自定义用户模型。
class User(AbstractUser):
username = None
email = models.EmailField(_("email address"), unique=True)
uuid = models.CharField(max_length=36, default=uuid4, unique=True)
USERNAME_FIELD = "email"
REQUIRED_FIELDS = []
objects = CustomUserManager()
def __str__(self):
return self.email
还有一个有多个用户的项目模型:
from user.models import User
class Project(models.Model):
project_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=256, unique=True, blank=False)
created = models.DateTimeField(auto_now_add=True)
description = models.TextField(max_length=10000, default="")
slug = models.SlugField(max_length=256, unique=True)
created_by = CurrentUserField(related_name='creator')
users = models.ManyToManyField(User, related_name='users')
....
我的 UserAdmin 模型如下所示:
class CustomUserAdmin(UserAdmin):
list_display = ("email", "is_staff", "is_superuser")
readonly_fields = ("last_login", "date_joined", "uuid")
ordering = ("email",)
fieldsets = (
(
"Fields",
{
"fields": (
"email",
"uuid",
"date_joined",
"last_login",
"is_active",
"is_staff",
"is_superuser",
"groups",
"user_permissions",
"password",
)
},
),
)
admin.site.register(User, CustomUserAdmin)
但是,当我进入项目实例的管理视图并尝试添加用户时,我得到:
/admin/user/user/add/ 处的字段错误 为用户指定的未知字段(用户名)。检查类 CustomUserAdmin 的字段/字段集/排除属性。 请求方法:GET 请求网址:http://localhost:8000/admin/user/user/add/?_to_field=id&_popup=1 Django 版本:3.2.11 异常类型:字段错误 异常值:
为用户指定的未知字段(用户名)。检查 CustomUserAdmin 类的字段/字段集/排除属性。
我在设置中添加了我的用户模型作为默认模型,所以我不知道这里的 username 字段来自哪里。
【问题讨论】:
标签: django django-models