出现这个错误通常是因为在扩展Django用户模型时,忘记在自定义的用户模型中设置USERNAME_FIELD属性。下面是一个解决方法的示例代码:
from django.contrib.auth.models import AbstractUser
from django.db import models
class UserProfile(AbstractUser):
# 添加自定义字段
phone_number = models.CharField(max_length=20)
# 设置USERNAME_FIELD属性为'username'
USERNAME_FIELD = 'username'
def __str__(self):
return self.username
在这个示例中,我们创建了一个名为UserProfile的用户模型,扩展了Django的AbstractUser。我们添加了一个自定义字段phone_number,并在自定义用户模型中设置了USERNAME_FIELD属性为'username'。
确保在自定义用户模型中设置了正确的USERNAME_FIELD属性,这样Django才能正确地保存扩展用户模型。