Python Django测试客户端:登录不';行不通

Python Django测试客户端:登录不';行不通,python,django,django-views,Python,Django,Django Views,我在Django测试用例中登录测试@login\u必需的视图时遇到问题 我有一个CustomUser模型,看起来像这样: class CustomUser(AbstractBaseUser, PermissionsMixin): email = models.EmailField('email address', max_length=254, unique=True) username = models.CharField('username', max_length=30,

我在Django测试用例中登录测试
@login\u必需的
视图时遇到问题

我有一个CustomUser模型,看起来像这样:

class CustomUser(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField('email address', max_length=254, unique=True)
    username = models.CharField('username', max_length=30, blank=True)
    is_active = models.BooleanField('active', default=False, help_text='Designates whether this user should be treated as approved.')
    objects = CustomUserManager()
    USERNAME_FIELD = 'email'
下面是我的测试用例:

class ViewTests(TestCase):
    def test_create_user(self):
        u = CustomUser.objects.create_superuser("u@u.ca","p")
        u.is_active = True
        u.save()
    def test_add_project(self):
        self.client.login(username="u@u.ca", password="p")
        response = self.client.get(reverse('add-project'), {}, follow=True)
用户创建正确并且
self.client.login()
正常工作,但响应只是重定向到我的登录页面


我可以创建用户,正确登录并在浏览器中使用此视图。如何让测试客户端执行相同的操作?

每个测试方法都运行自己的事务,该事务在测试结束时回滚。在一个测试中创建的数据在另一个测试中不可用。此登录不起作用,因为用户不存在/从未创建过。如果您的测试需要一些常见的测试数据,您可以将其放在测试用例
设置中