Factory Boy 日期提供者正在返回字符串

Factory Boy date provider is returning string

所以,我一直在使用 factory_boy 包生成一些随机数据的一些应用程序中工作,但我正在为日期提供程序而苦恼 :(

class MyModel(models.Model):
    date = models.DateField()

class MyModelFactory(factory.DjangoModelFactory):
    date = factory.Faker('date')

    class Meta:
        model = MyModel

my_model = MyModelFactory()
my_model.date # '2010-05-20'

有人知道如何让伪造者 return 成为真正的约会对象吗?

得到后直接转换成日期即可

date = datetime.strptime(factory.Faker('date'), "%b-%d-%y")

date 提供程序 returns 一个字符串 - 不是 date 对象。您需要使用 date_object provider 代替:

class MyModelFactory(factory.DjangoModelFactory):
    date = factory.Faker('date_object')

您可以使用 Faker('date_object'),或者 — 为了获得更多控制 — factory.fuzzy.FuzzyDate helper:

class MyModelFacotry(factory.django.DjangoModelFactory):
    # Start somewhere in 2018
    start_date = factory.fuzzy.FuzzyDate(
        datetime.date(2018, 1, 1),
        datetime.date(2019, 12, 31),
    )