Итератор фабричного мальчика генерирует неправильный порядок
Я использую Iterator для создания строгой последовательности значений.
class MyModelFactory(DjangoModelFactory):
class Meta:
model = MyModel
django_get_or_create = ("first_field",)
first_field = Iterator(["value_1", "value_2", "value_3", "value_4"])
second_field = Iterator("aaaa", "bbbb", "cccc"])
third_field = Iterator([1, 2, 3, 4])
Я ожидаю, что результат должен быть следующим:
[
("value_1", "aaaa", 1),
("value_2", "bbbb", 2),
("value_3", "cccc", 3),
("value_4", "aaaa", 4)
]
Но исход непредсказуем:
[
("value_1", "aaaa", 4),
("value_2", "bbbb", 3),
("value_3", "cccc", 1),
("value_4", "aaaa", 2)
]
Когда я использую эту MyModelFactory в качестве RelatedFactory два раза подряд, моя база данных выдает ошибку duplicate key value violates unique constraint third_field. Да третье_поле должно быть уникальным. Вопрос в том, почему эта ошибка возникает, если я использую django_get_or_create?
Есть идеи?