Обращаясь к документации django-autofixture , я написал следующий код (отредактированный для краткости):
def random_state_generator(self, states=None):
import random
if not states:
states = "waiting|email|post|einv".split('|')
while 1:
yield random.choice(states)
...
rsg = self.random_state_generator()
self.create_test_foo(10, values={'state': rsg})
...
field_values = dict(field_values.items() + values.items())
foo_fixture = AutoFixture(FooClass, overwrite_defaults=True,
generate_fk=generate_fk_values,
field_values=field_values)
bunch_of_stuff = foo_fixture.create(foo_count)
Хорошо, теперь, когда у меня все БД настроено, я фильтрую список вещей и иду
for foo in bunch_of_stuff: print (foo.state)
вместо получения строки ожидаемого случайного состояния, Я получаю следующий вывод:
объект генератора random_state_generator в 0x242c640>
, что не является тем, что я ожидаю, основываясь на документации, в частности
field_values: словарь с именами полей модели в качестве ключей.Значения могут быть статическими значениями, которые назначены полю, экземпляром Generator, который генерирует значение на лету, или функцией вызова, которая не принимает аргументов и возвращает требуемое значение.
Что я делаю неправильно?