我删除了username
字段,因为我希望用户能够使用他们的电子邮件地址登录,所以在我的models.py
文件中有以下内容:
class CustomUser(AbstractUser):
USER_TYPE = ((1, 'HOD'), (2, 'Staff'), (3, 'Student'))
username = None
email = models.EmailField(unique=True)
user_type = models.CharField(default=1, choices=USER_TYPE, max_length=1)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
class Student(models.Model):
admin = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
gender = models.CharField(max_length=1, choices=GENDER)
address = models.TextField()
profile_pic = models.ImageField(upload_to='media')
session_start_year = models.DateField(null=True)
session_end_year = models.DateField(null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now_add=True)
在我的
views.py
文件中,我尝试了以下内容:user = CustomUser.objects.create_user(email=email, password=password, user_type=3, first_name=first_name, last_name=last_name)
但是我得到了一个错误信息:create_user()缺少1个必需的位置参数:'username' 我该如何修复它?
create_user()
需要第一个参数作为用户名。你没有传递这个参数。 - John Gordonusername
。我尝试传递username=None
,但它显示必须设置给定的用户名
。我该如何绕过这个问题?我不想保留username
字段。对我来说,只有电子邮件就可以了。 - Owonubi Job Sunday