Django пользовательский пользователь с AbstractUser - PullRequest
0 голосов
/ 21 апреля 2020
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?) Как я могу исправить ошибку.

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Я использую AbstractBaseUser вместо AbstractUser, и проблема не возникла. Также, прочитав код django .contrib.auth.models, вы можете увидеть, какие поля были реализованы и как. это можно сделать, удерживая клавишу управления и щелкнув по адресу импорта.

0 голосов
/ 21 апреля 2020

Убедитесь, что вы указали свой класс пользователя в файле settings.py, например

AUTH_USER_MODEL = 'appname.MyUser'

Замените appname именем вашего приложения.

Или вы используете MyUser вместо get_user_model().

...