【发布时间】:2019-04-30 01:40:12
【问题描述】:
我需要使用factory boy 创建一些假数据。我有以下型号:
class Fabric(models.Model):
title = models.CharField(max_length=200, blank=True)
description = models.CharField(max_length=200, blank=True)
price = models.DecimalField(decimal_places=2, max_digits=10, null=True, blank=False)
我需要根据这个模型创建一个工厂,我希望价格有一个 1 到 100 之间的随机值。
class FabricFactory(DjangoModelFactory):
class Meta:
model = Fabric
title = factory.Faker('name')
description = factory.Faker('catch_phrase')
price = random.randrange(MIN_PRICE, MAX_PRICE + 1)
问题是我总是为每个实例获得相同的价格。
【问题讨论】:
-
如果我理解正确(我对
factory_boy没有任何经验)它是一个固定装置,可以重复使用,它似乎只被实例化一次,这个固定装置的范围是你的整个会话。有什么办法可以在factory_boy中修改你的fixture 的范围吗? -
@KlausD.,我想到了这个选项,但似乎使用惰性属性更简单。
-
@aws_appretice,感谢您的提示。这绝对是使用惰性属性所做的事情。
-
很高兴你知道了:thumbsup:
标签: python django factory-boy