【发布时间】:2021-10-03 03:54:04
【问题描述】:
我正在尝试在 Django 中测试用户的创建。但是我的用户模型不是标准的(电子邮件是用户名)。
models.py
from django.contrib.auth.models import AbstractUser, UserManager as AbstractUserManager
class UserManager(AbstractUserManager):
def create_user(self, email, password=None, is_active=True, is_staff=False, is_admin=False):
if not email:
raise ValueError('Users must have an email address')
user = self.model(
email=self.normalize_email(email),
)
user.set_password(password)
user.save(using=self._db)
return user
class CustomUser(AbstractUser):
objects = UserManager()
username = None
first_name = models.CharField(max_length=150)
last_name = models.CharField(max_length=150)
email = models.EmailField(unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
tests.py
from django.contrib.auth import get_user_model
class CustomUserTests(TestCase):
def test_create_user(self):
user = get_user_model()
utilisateur = user.create_user(
email='test@tester.com',
password='testpass123',
)
self.assertEqual(utilisateur.email, 'test@tester.com')
错误 第 10 行,在 test_create_user utilisateur = user.create_user( AttributeError: type object 'CustomUser' has no attribute 'create_user'
有些东西不见了,但我不知道如何测试这个......
非常感谢
【问题讨论】:
标签: python django unit-testing