Почему именование переменных RelatedFactory в фабрике влияет на то, когда фабрики выполняются / создаются?

Когда я назвал мои переменные RelatedFactory pv_something заводы не будут работать до post_generation метод. Когда я переименовал переменные в param_val_something они будут бежать до post_generation метод.

В следующем коде RelatedFactory не запускается до post_generation, так self.something_set.all() пусто, а строка t.something_else = 'abc' никогда не выполняется.

class ThingFactory(factory.DjangoModelFactory):
    class Meta:
        model = Thing

    name = 'a thing'

    pv_something = factory.RelatedFactory(SomethingFactory, 'thing')

    @factory.post_generation
    def post(self, create, extracted, **kwargs):
        for t in self.something_set.all():
            t.something_else = 'abc'

В следующем коде единственная разница - переименование переменной pv_something в param_val_something, Сейчас, self.something_set.all() не пусто, а строка t.something_else = 'abc' выполнен.

class ThingFactory(factory.DjangoModelFactory):
    class Meta:
        model = Thing

    name = 'a thing'

    param_val_something = factory.RelatedFactory(SomethingFactory, 'thing')

    @factory.post_generation
    def post(self, create, extracted, **kwargs):
        for t in self.something_set.all():
            t.something_else = 'abc'

Я использую Python 3.4.3, Django 1.8.5 и factory-boy 2.5.2.

Полночь в пятницу вечером, это чуть не отправило меня за край...

0 ответов

Другие вопросы по тегам