Django не загружает фикстуры при наличии сигнала post_save

Я тестирую функцию регистрации в моем приложении Django. Когда пользователи регистрируются, пользователю по умолчанию назначается user_type. Я использую сигнал post_save для обработки этого сигнала.

У меня есть модель профиля, которая должна быть связана с пользователем, и под моделью профиля есть поле user_type, которое взято из другой модели.

class UserType(models.Model):
    name = models.CharField(max_length=50, blank=True)

    def __str__(self):
        return self.name

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    user_type = models.ForeignKey(UserType, on_delete=models.SET_NULL, null=True, blank=True)

Для автоматического назначения значения по умолчанию user_type у меня есть сигнал:

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        user_type = UserType.objects.get(pk=1)
        Profile.objects.create(
            user=instance,
            user_type=user_type)

Я создал приспособление из своих моделей User, Profile и UserType и в своем APITestCase поместил приспособление.

class TestUserManagement(APITestCase):
    fixtures = ['fixtures/initial']

Когда я запускаю тест, кажется, что фикстуры не загружаются в тестовую базу данных.

  File "/usr/src/app/fixtures/signals.py", line 15, in create_user_profile
    user_type = UserType.objects.get(pk=1)

...

{model}.UserType.DoesNotExist: Problem installing fixture 
'/usr/src/app/fixtures/initial.json': UserType matching query does not exist.
Вернуться на верх