इसे अच्छे तरीके से करने के लिए आपको Factory Boy के संयोजन की आवश्यकता होगी। , Faker और कस्टम प्रबंधन आदेश ।
फ़ैक्टरी बॉय आपको वैध वस्तुओं के उत्पादन के लिए टेम्पलेट बनाने की अनुमति देता है और फ़ेकर नकली डेटा उत्पन्न करता है।
जब आप फ़ैक्टरी बॉय स्थापित करते हैं, तो pip install factory_boy
, आपको फ़ेकर भी मिलता है।
दिया गया,
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)
आप फैक्ट्री को इस प्रकार परिभाषित कर सकते हैं:
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')
फिर, आप UserFactory.create()
. पर कॉल करके नकली उपयोगकर्ता बना सकते हैं ।
अपने 200 नकली उपयोगकर्ताओं को प्राप्त करने का एक तरीका यह होगा कि आप शेल में कूद जाएं, python manage.py shell
, और करें:
>>> # import UserFactory here
>>> for _ in range(200):
... UserFactory.create()
एक और तरीका है, जो आपको बहुत अधिक लचीलापन दे सकता है, वह है एक कस्टम प्रबंधन कमांड बनाना।
उदाहरण के लिए, seed.py
create बनाएं (यह प्रबंधन कमांड का नाम होगा) निर्देशिका में <yourapp>/management/commands
(इसे Django द्वारा खोजा गया है) निम्नलिखित के साथ:
# <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()
और, आप इसे python manage.py seed
. के साथ कमांड-लाइन के माध्यम से चलाएंगे या python manage.py seed --users 50
उदाहरण के लिए।