Django ModelManager заставляет DjangoModelFactory возвращать None

<
class ScheduledCourse(models.Model):
    """Represents a scheduled course that is/was bound to be held."""

    class ScheduledCourseManager(models.Manager):
        def create(self, *args, **kwargs):

            if not (template := kwargs.get("template")):
                raise ValueError("Template can not be empty")

            # If user did not specifiy values for these parameters, use the ones in the template
            for key in ["title", "description", "price"]:
                if not kwargs.get(key):
                    kwargs.update({key: getattr(template, key)})

            super().create(*args, **kwargs)
У меня есть объект django.Model, который должен выполнять некоторую обработку параметров при инициализации. Поэтому внутри него я создал ModelManager, как предлагает документация.

Это работает нормально, я протестировал это и могу создавать объекты с помощью вызова ScheduledCourse(...). Однако когда я попытался создать фабрику для этого объекта, чтобы использовать ее в своих тестах, то фабрика возвращает None, без какой-либо ошибки.

class ScheduledCourseFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = ScheduledCourse

    template = factory.SubFactory(CourseTemplateFactory)

    title = "Test title"
    description = "Test description"
    price = 1234.0
    start_date = datetime.today()
    end_date = datetime.today() + timedelta(days=1)
    signup_deadline = datetime.today() - timedelta(days=1)
    venue = "Test Venue"
    status = ScheduledCourse.Status.DRAFT

Какова причина того, что моя фабрика не возвращает ничего?

Это смешно, но мне не хватало ключевого слова return в конце метода create.

Вернуться на верх