Я хочу проверить созданную ссылку на м2.В моделях это выглядит так:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
def __str__(self):
return self.user.username
class List(models.Model):
name = models.CharField(max_length = 4)
user = models.ManyToManyField(Profile)
def __str__(self):
return f'{self.name} by {self.user.__str__()}'
@receiver(post_save, sender = User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user = instance)
@receiver(post_save, sender = User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
Мой тест выглядит следующим образом:
def test_create_list(self):
self.create_user("test_user") # returns User.objects.create_user
extended_user = Profile.objects.get(pk = 1)
l = List.objects.create(
name = "2019"
)
l.user.add(extended_user)
self.assertEqual(l.__str__(), f"2019 by {extended_user.__str__()}")
Это приводит к провалу теста:
Expected :'2019 by hay.Profile.None'
Actual :'2019 by test_user'
Почему это hay.Profile.None
подходит?Я пытался добавить l.save()
до подтверждения, но это не помогает.Что я могу сделать?