Per farlo in modo corretto avrai bisogno di una combinazione di Factory Boy , Falso e comandi di gestione personalizzati .
Factory Boy ti consente di creare modelli per la produzione di oggetti validi e Faker genera dati falsi.
Quando installi Factory Boy, pip install factory_boy
, ottieni anche Faker.
Dato,
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)
Puoi definire una Fabbrica come segue:
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')
Quindi, puoi creare utenti falsi chiamando UserFactory.create()
.
Un modo per ottenere i tuoi 200 falsi utenti sarebbe quello di saltare nella shell, python manage.py shell
, e fai:
>>> # import UserFactory here
>>> for _ in range(200):
... UserFactory.create()
Un altro modo, che può darti molta più flessibilità, è creare un comando di gestione personalizzato.
Ad esempio, crea seed.py
(questo sarà il nome del comando di gestione) nella directory <yourapp>/management/commands
(per averlo scoperto da Django) con quanto segue:
# <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 lo eseguiresti tramite la riga di comando con python manage.py seed
o python manage.py seed --users 50
per esempio.