2017-08-06 79 views
1

我想用factory_boyFaker中的DjangoModelFactory设置UserFactory。 这是我的代码。如何设置蟒蛇Faker字段的长度

fake = Faker('uk_UA') 

class UserFactory(DjangoModelFactory): 
    class Meta: 
     model = User 

    username = fake.user_name 
    first_name = fake.first_name_male 
    last_name = fake.last_name_male 

    email = fake.safe_email 

但是当我尝试使用它我得到错误:

DataError     Traceback (most recent call last) 
/Users/mero/.virtualenvs/fine-hut/lib/python3.6/site-packages/django/db/backends/utils.py in execute(self, sql, params) 
    63    else: 
---> 64     return self.cursor.execute(sql, params) 
    65 

DataError: value too long for type character varying(30) 

我认为问题是由法克尔产生太长的字段。但我没有找到任何方法来限制它在python中的长度,但找到了Ruby Faker的答案。

有没有办法在python Faker中做到这一点? 或者也许有其他方法可以使用Faker生成特定于语言环境的字段?

+0

我认为[this](https://stackoverflow.com/a/8484841/5716723)答案可以帮助 –

+0

谢谢@EyalCohen。但我不想改变分贝来防止未来的问题。例如,我将在其他地方部署我的应用程序。 –

回答

0

已经找到解决方法:

class UserFactory(DjangoModelFactory): 
    class Meta: 
     model = User 

    username = factory.Faker('user_name', locale='uk_UA') 
    first_name = factory.Faker('first_name', locale='uk_UA') 
    last_name = factory.Faker('last_name', locale='uk_UA') 

    email = factory.Faker('safe_email', locale='uk_UA') 

这对我的作品,但还是有趣的,如果有设置字段的长度在法克尔的选项。