工厂男孩的工厂的可选(可为null)值



我将lazy_attributechoiceNone一起使用,但我认为可以做得更好。

import factory  # from factory-boy
from random import choice

class Device(models.Model):
deleted_at = models.DateTimeField(null=True, blank=True)

class DeviceFactory(factory.DjangoModelFactory):
class Meta:
model = Device
@factory.lazy_attribute
def deleted_at(self):
return choice([Faker('date_time').generate(), None])

工厂男孩有一个可为null字段的Maybe声明。在这里使用它最简单的方法是创建一个中间字段,然后排除中间字段:

class DeviceFactory(factory.DjangoModelFactory):
class Meta:
model = Device
exclude = ('is_deleted',)
is_deleted = factory.Faker('pybool')
deleted_at = factory.Maybe('is_deleted', Faker('date_time'), None)

最新更新