Para fazer isso de uma maneira agradável, você precisará de uma combinação de Factory Boy , Faker e comandos de gerenciamento personalizados .
O Factory Boy permite que você crie modelos para produzir objetos válidos e o Faker gera dados falsos.
Ao instalar o Factory Boy,
pip install factory_boy
, você também recebe Faker. Dado,
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)
Você pode definir uma Fábrica da seguinte forma:
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')
Então, você pode criar usuários falsos chamando
UserFactory.create()
. Uma maneira de obter seus 200 usuários falsos seria pular para o shell,
python manage.py shell
, e fazer: >>> # import UserFactory here
>>> for _ in range(200):
... UserFactory.create()
Outra maneira, que pode oferecer muito mais flexibilidade, é criar um comando de gerenciamento personalizado.
Por exemplo, crie
seed.py
(este será o nome do comando de gerenciamento) no diretório <yourapp>/management/commands
(para tê-lo descoberto pelo Django) com o seguinte:# <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()
E você o executaria pela linha de comando com
python manage.py seed
ou python manage.py seed --users 50
por exemplo.