За да го направите по приятен начин, ще ви е необходима комбинация от Factory Boy , 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 фалшиви потребители е да скочите в обвивката, python manage.py shell
, и направете:
>>> # import UserFactory here
>>> for _ in range(200):
... UserFactory.create()
Друг начин, който може да ви даде много повече гъвкавост, е да създадете персонализирана команда за управление.
Например, създайте 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
например.