我正在尝试在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\u create\u user usilizateur=user.create\u user(attributeerror:type对象“customuser”没有属性“create\u user”
缺少一些东西,但我不知道如何测试这个。。。
谢谢
1条答案
按热度按时间wd2eg0qa1#
customuser'没有属性“create\u user”
create_user
不在屏幕上CustomUser
模型,这就是错误所说的。该方法出现在UserManager
管理器在用户模型上定义为objects = UserManager()
.因此,要访问该方法,您需要使用
user.objects.create_user
.