Untuk menyelesaikannya dengan cara yang baik, Anda memerlukan kombinasi Factory Boy , Penipu dan perintah pengelolaan khusus .
Factory Boy memungkinkan Anda membuat template untuk menghasilkan objek yang valid dan Faker menghasilkan data palsu.
Saat Anda menginstal Factory Boy, pip install factory_boy , Anda juga mendapatkan Faker.
Diketahui,
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)
Anda dapat mendefinisikan Pabrik sebagai berikut:
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')
Kemudian, Anda dapat membuat pengguna palsu dengan memanggil UserFactory.create() .
Salah satu cara untuk mendapatkan 200 pengguna palsu Anda adalah dengan masuk ke shell, python manage.py shell , dan lakukan:
>>> # import UserFactory here
>>> for _ in range(200):
... UserFactory.create()
Cara lain, yang dapat memberi Anda lebih banyak fleksibilitas, adalah dengan membuat perintah pengelolaan khusus.
Misalnya, buat seed.py (ini akan menjadi nama perintah manajemen) di direktori <yourapp>/management/commands (agar ditemukan oleh Django) dengan yang berikut:
# <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()
Dan, Anda akan menjalankannya melalui baris perintah dengan python manage.py seed atau python manage.py seed --users 50 misalnya.