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),
)
所以,我一直在使用 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),
)