models.py
Код: Выделить всё
class TestModel(models.Model):
name = CharField()
order = IntegerField()
Код: Выделить всё
class TestModelFactory(factory.django.DjangoModelFactory):
class Meta:
model = TestModel
name = factory.LazyAttribute(lambda o: faker.word().title())
order = 0
Код: Выделить всё
recipes.TestModelFactory.create_batch(4, order=+10)
Код: Выделить всё
recipes.TestModelFactory.create_batch(4, order=seq(10))
Код: Выделить всё
TestModel.objects.all().values_list('order', flat=True)
[10, 20, 30, 40]
Спасибо @trinchet за идею. Поэтому я думаю, что одним из решений будет:
Код: Выделить всё
class TestModelFactory(factory.django.DjangoModelFactory):
class Meta:
model = TestModel
name = factory.LazyAttribute(lambda o: faker.word().title())
order = factory.Sequence(lambda n: n * 10)
Обходной путь:
Код: Выделить всё
class TestModelFactory(factory.django.DjangoModelFactory):
class Meta:
model = TestModel
name = factory.LazyAttribute(lambda o: faker.word().title())
order = 0
Код: Выделить всё
recipes.MenuItemFactory.reset_sequence(1)
recipes.MenuItemFactory.create_batch(
4,
parent=self.section_menu,
order=factory.Sequence(lambda n: n * 10)
)
Подробнее здесь: https://stackoverflow.com/questions/521 ... actory-boy
Мобильная версия