Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 伪造者使用Factory Boy创建的所有相等值_Django_Faker_Factory Boy - Fatal编程技术网

Django 伪造者使用Factory Boy创建的所有相等值

Django 伪造者使用Factory Boy创建的所有相等值,django,faker,factory-boy,Django,Faker,Factory Boy,在Django项目中使用Factory Boy和Faker,我注意到使用Factory Boy创建的对象,以及在本例中使用Faker创建名称公司名称不会为新对象创建唯一的名称 主要问题:第一个例子,当我们将Faker用作单独的库时,我们使用它是错误的吗?或者,当与Factory Boy一起使用时,Factory Boy的固有特性是否阻止Faker作为单独的库正确工作 import factory ... from faker import Faker from faker.providers

在Django项目中使用Factory Boy和Faker,我注意到使用Factory Boy创建的对象,以及在本例中使用Faker创建名称公司名称不会为新对象创建唯一的名称

主要问题:第一个例子,当我们将Faker用作单独的库时,我们使用它是错误的吗?或者,当与Factory Boy一起使用时,Factory Boy的固有特性是否阻止Faker作为单独的库正确工作

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文档中,我读到他们在Facker周围有一个包装器,使用它我确实获得了独特的结果:

import factory
...


class PolicyBrandFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = PolicyBrand

    name = factory.Faker('company', locale='nl_NL')
结果是:
您正在使用一个类变量。名称是在定义类时定义的,它是单个调用fake.company的结果


如果这是一个简单的Django模型,我希望必须重写uu init uuu,但我不知道factory.Django.DjangoModelFactory以及它可能执行的元分类魔术。

您使用的是一个类变量。名称是在定义类时定义的,它是单个调用fake.company的结果


如果这是一个简单的Django模型,我希望必须重写uu init uu,但我不知道factory.Django.DjangoModelFactory以及它可能执行的元分类魔术。

类似于Django表单并设置默认日期,名称值是在首次定义类时设置的

你需要使用


与Django表单和设置默认日期类似,名称值是在首次定义类时设置的

你需要使用


在factory_boy中使用Faker的受支持方式是通过助手:

类PolicyBrandFactoryfactory.django.DjangoModelFactory: 类元: 型号=品牌 name=factory.Faker'company',locale='nl\u nl' 这也将把骗子的随机种子管理和工厂男孩的随机种子联系起来

如果要在没有帮助器的情况下使用,则必须使用其中一个惰性帮助器:

伪造的 类PolicyBrandFactoryfactory.django.DjangoModelFactory: 类元: 型号=品牌 name=factory.LazyFunctionfake.company name_alt=factory.LazyAttributelambda obj:fake.company
在factory_boy中使用Faker的受支持方式是通过助手:

类PolicyBrandFactoryfactory.django.DjangoModelFactory: 类元: 型号=品牌 name=factory.Faker'company',locale='nl\u nl' 这也将把骗子的随机种子管理和工厂男孩的随机种子联系起来

如果要在没有帮助器的情况下使用,则必须使用其中一个惰性帮助器:

伪造的 类PolicyBrandFactoryfactory.django.DjangoModelFactory: 类元: 型号=品牌 name=factory.LazyFunctionfake.company name_alt=factory.LazyAttributelambda obj:fake.company
天哪,我自己都没意识到。我想又回到学校了,谢谢!天哪,我自己都没意识到。我想又回到学校了,谢谢!
class PolicyBrandFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = PolicyBrand

    name = fake.company()
name = factory.LazyAttribute(lambda _: fake.company())