2017-08-06 28 views
1

DjangoModelFactoryを使用してUserFactoryをfactory_boyFakerに設定しようとしています。 ここに私のコードです。Python 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を使用する他の方法がありますか?偽物で、フィールドの長さを設定するオプションがある場合、それはまだ面白い私のために動作しますが、

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') 

+0

私は[this](https://stackoverflow.com/a/8484841/5716723)の回答が役に立ちそうです –

+0

ありがとう@EyalCohen。しかし、私は将来の問題を防ぐためにdbを変更したくありません。例えば、私はどこか別の場所に私のアプリを展開します。 –

答えて

0

は、回避策を発見しました。

関連する問題