参照django-autofixture documentation,我写以下代码(编辑为简洁):传递发电机以field_values在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实例或不带参数并返回所需值的可调用值。
我在做什么错?