Để hoàn thành công việc một cách tốt đẹp, bạn sẽ cần kết hợp Factory Boy , Faker và lệnh quản lý tùy chỉnh .
Factory Boy cho phép bạn tạo các mẫu để tạo ra các đối tượng hợp lệ và Faker tạo dữ liệu giả.
Khi bạn cài đặt Factory Boy, pip install factory_boy
, bạn cũng có được Faker.
Đã cho,
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)
Bạn có thể định nghĩa một Nhà máy như sau:
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')
Sau đó, bạn có thể tạo người dùng giả bằng cách gọi UserFactory.create()
.
Một cách để có được 200 người dùng giả mạo của bạn là nhảy vào shell, python manage.py shell
và thực hiện:
>>> # import UserFactory here
>>> for _ in range(200):
... UserFactory.create()
Một cách khác, có thể giúp bạn linh hoạt hơn rất nhiều, là tạo một lệnh quản lý tùy chỉnh.
Ví dụ:tạo seed.py
(đây sẽ là tên lệnh quản lý) trong thư mục <yourapp>/management/commands
(để Django phát hiện ra) với những điều sau:
# <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()
Và, bạn sẽ chạy nó qua dòng lệnh với python manage.py seed
hoặc python manage.py seed --users 50
chẳng hạn.