test django创建没有用户名的abstractuser的用户

wnrlj8wa  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(497)

我正在尝试在django中测试用户的创建。但是我的用户模型不是标准的(电子邮件是用户名)。

models.py

  1. from django.contrib.auth.models import AbstractUser, UserManager as AbstractUserManager
  2. class UserManager(AbstractUserManager):
  3. def create_user(self, email, password=None, is_active=True, is_staff=False, is_admin=False):
  4. if not email:
  5. raise ValueError('Users must have an email address')
  6. user = self.model(
  7. email=self.normalize_email(email),
  8. )
  9. user.set_password(password)
  10. user.save(using=self._db)
  11. return user
  12. class CustomUser(AbstractUser):
  13. objects = UserManager()
  14. username = None
  15. first_name = models.CharField(max_length=150)
  16. last_name = models.CharField(max_length=150)
  17. email = models.EmailField(unique=True)
  18. USERNAME_FIELD = 'email'
  19. REQUIRED_FIELDS = []

tests.py

  1. from django.contrib.auth import get_user_model
  2. class CustomUserTests(TestCase):
  3. def test_create_user(self):
  4. user = get_user_model()
  5. utilisateur = user.create_user(
  6. email='test@tester.com',
  7. password='testpass123',
  8. )
  9. self.assertEqual(utilisateur.email, 'test@tester.com')

错误行10,在test\u create\u user usilizateur=user.create\u user(attributeerror:type对象“customuser”没有属性“create\u user”
缺少一些东西,但我不知道如何测试这个。。。
谢谢

wd2eg0qa

wd2eg0qa1#

customuser'没有属性“create\u user” create_user 不在屏幕上 CustomUser 模型,这就是错误所说的。该方法出现在 UserManager 管理器在用户模型上定义为 objects = UserManager() .
因此,要访问该方法,您需要使用 user.objects.create_user .

相关问题