【发布时间】:2020-10-14 10:26:53
【问题描述】:
我有以下用户类型:
class User(AbstractUser):
user_type = models.CharField(choices=USER_TYPES, max_length=255, default='student')
class Student(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
在为功能测试 ID 创建用户时,通常这样做:
user = get_user_model().objects.create_user(username='test', email='test@example.com', password='passwordtest')
EmailAddress.objects.create(user=user, email="example@example.com", primary=True, verified=True)
对于此测试,我需要创建一个学生,但找不到任何有关如何执行此操作的信息。我尝试的一切,例如:
user = get_user_model().objects.create_user(username='test', email='test@example.com', password='passwordtest')
user = Student.objects.create(user=user)
导致如下错误:
django.db.utils.IntegrityError: (1062, "Duplicate entry '1' for key 'user_id'")
谢谢。
【问题讨论】:
-
您是否覆盖了用户的保存方法,可能是为了创建学生对象或类似的东西。发布错误的完整引用
-
啊,是的,谢谢。我前段时间创建了这个功能,并在创建用户时使用信号创建了一个学生实例。
标签: django selenium functional-testing django-testing django-tests