0
from django.contrib.auth import get_user_model
from django.contrib.auth.models import AbstractUser

class MyUser(AbstractUser):
    pass

class Landlord(models.Model):
    user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE)
    #other fields
    def __str__(self):
        # **Error is here**
        return self.user.email

当我使用我的用户的电子邮件字段时,它给出了这个错误:“'OneToOneField' 的实例没有'电子邮件'成员”

错误的原因是什么?(AbstractUser 类中有哪些字段?)如何修复错误。

4

2 回答 2

0

您应该确保在settings.py文件中指定您的用户类,例如

AUTH_USER_MODEL = 'appname.MyUser'

替换appname为您的应用程序的名称。

或者您使用MyUser而不是get_user_model().

于 2020-04-21T18:45:02.623 回答
0

我使用的是 AbstractBaseUser 而不是 AbstractUser 并且没有出现问题。还可以通过阅读 django.contrib.auth.models 的代码,您可以看到已经实现了哪些字段以及如何实现的。可以通过按住控制键并单击导入地址来完成。

于 2020-04-21T18:58:23.633 回答