Pour le faire de manière agréable, vous aurez besoin d'une combinaison de Factory Boy , Faux et commandes de gestion personnalisées .
Factory Boy vous permet de créer des modèles pour produire des objets valides et Faker génère de fausses données.
Lorsque vous installez Factory Boy, pip install factory_boy
, vous obtenez également Faker.
Étant donné,
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)
Vous pouvez définir une Usine comme suit :
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')
Ensuite, vous pouvez créer de faux utilisateurs en appelant UserFactory.create()
.
Une façon d'obtenir vos 200 faux utilisateurs serait de sauter dans le shell, python manage.py shell
, et faites :
>>> # import UserFactory here
>>> for _ in range(200):
... UserFactory.create()
Une autre façon, qui peut vous donner beaucoup plus de flexibilité, est de créer une commande de gestion personnalisée.
Par exemple, créez seed.py
(ce sera le nom de la commande de gestion) dans le répertoire <yourapp>/management/commands
(pour le faire découvrir par Django) avec ce qui suit :
# <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()
Et, vous l'exécuteriez via la ligne de commande avec python manage.py seed
ou python manage.py seed --users 50
par exemple.