【发布时间】:2020-04-09 19:43:29
【问题描述】:
在 Django 项目中使用 Factory Boy 和 Faker,我注意到使用 Factory Boy 创建的对象以及使用 Faker 创建名称(本示例中为公司名称)不会为新对象创建唯一名称。
主要问题:我们在将 Faker 用作单独的库(第一个示例)时使用它是错误的,还是 Factory Boy 的固有特性阻止了 Faker 作为单独的库正常工作,与 Factory Boy 一起使用时?
import factory
...
from faker import Faker
from faker.providers import company
...
fake = Faker('nl_NL')
fake.add_provider(company)
class PolicyBrandFactory(factory.django.DjangoModelFactory):
class Meta:
model = PolicyBrand
name = fake.company()
结果(Pycharm 调试器截图): (重点是非唯一的公司名称)
在 Factory Boy 文档中,我读到他们有一个 Faker 包装器,使用它我确实得到了独特的结果:
import factory
...
class PolicyBrandFactory(factory.django.DjangoModelFactory):
class Meta:
model = PolicyBrand
name = factory.Faker('company', locale='nl_NL')
【问题讨论】:
标签: django faker factory-boy