それをうまく行うには、 FactoryBoy
の組み合わせが必要です。 、 Faker
および
Factory Boyを使用すると、有効なオブジェクトを作成するためのテンプレートを作成でき、Fakerは偽のデータを生成します。
Factory Boyをインストールするときは、pip install factory_boy
、Fakerも入手できます。
与えられた、
from django.db import models
class User(models.Model):
name = models.CharField(max_length=64)
address = models.CharField(max_length=128)
phone_number = models.CharField(max_length=32)
ファクトリは次のように定義できます:
import factory
import factory.django
class UserFactory(factory.django.DjangoModelFactory):
class Meta:
model = User
name = factory.Faker('name')
address = factory.Faker('address')
phone_number = factory.Faker('phone_number')
次に、UserFactory.create()
を呼び出して、偽のユーザーを作成できます。 。
200人の偽のユーザーを取得する1つの方法は、シェル、python manage.py shell
にジャンプすることです。 、および実行:
>>> # import UserFactory here
>>> for _ in range(200):
... UserFactory.create()
柔軟性を大幅に高めるもう1つの方法は、カスタム管理コマンドを作成することです。
たとえば、seed.py
を作成します (これは管理コマンド名になります)ディレクトリ<yourapp>/management/commands
(Djangoによって発見されるため)次のように:
# <yourapp>/management/commands/seed.py
from django.core.management.base import BaseCommand
# import UserFactory here
class Command(BaseCommand):
help = 'Seeds the database.'
def add_arguments(self, parser):
parser.add_argument('--users',
default=200,
type=int,
help='The number of fake users to create.')
def handle(self, *args, **options):
for _ in range(options['users']):
UserFactory.create()
そして、python manage.py seed
を使用してコマンドラインから実行します。 またはpython manage.py seed --users 50
たとえば。