Django 2.1 - Providing initial data for models

मॉडल के लिए प्रारंभिक डेटा प्रदान करना




django

मॉडल के लिए प्रारंभिक डेटा प्रदान करना

जब आप पहली बार कोई ऐप सेट कर रहे हों तो हार्ड-कोडेड डेटा के साथ अपने डेटाबेस को पूर्व-आबाद करना कभी-कभी उपयोगी होता है। आप माइग्रेशन या जुड़नार के साथ प्रारंभिक डेटा प्रदान कर सकते हैं।

माइग्रेशन के साथ प्रारंभिक डेटा प्रदान करना

यदि आप किसी ऐप के लिए स्वचालित रूप से प्रारंभिक डेटा लोड करना चाहते हैं, तो डेटा माइग्रेशन बनाएं। परीक्षण डेटाबेस सेट करते समय माइग्रेशन चलाया जाता है, इसलिए डेटा वहां उपलब्ध होगा, कुछ सीमाओं के अधीन।

जुड़नार के साथ डेटा प्रदान करना

आप जुड़नार का उपयोग करके भी डेटा प्रदान कर सकते हैं, हालाँकि, यह डेटा स्वचालित रूप से लोड नहीं होता है, सिवाय इसके कि आप TransactionTestCase.fixtures उपयोग करते हैं।

एक स्थिरता डेटा का एक संग्रह है जिसे Django एक डेटाबेस में आयात करना जानता है। यदि आप पहले से ही कुछ डेटा प्राप्त कर चुके हैं, तो एक स्थिरता बनाने का सबसे सरल तरीका है, manage.py dumpdata कमांड का उपयोग करना। या, आप हाथ से जुड़नार लिख सकते हैं; जुड़नार JSON, XML या PyYAML ( PyYAML स्थापित के साथ) दस्तावेजों के रूप में लिखे जा सकते हैं। क्रमबद्ध प्रलेखन में इन समर्थित क्रमबद्ध स्वरूपों में से प्रत्येक के बारे में अधिक विवरण है

एक उदाहरण के रूप में, हालांकि, यहां एक साधारण Person मॉडल के लिए एक स्थिरता जेन्सन में कैसी दिख सकती है:

[
  {
    "model": "myapp.person",
    "pk": 1,
    "fields": {
      "first_name": "John",
      "last_name": "Lennon"
    }
  },
  {
    "model": "myapp.person",
    "pk": 2,
    "fields": {
      "first_name": "Paul",
      "last_name": "McCartney"
    }
  }
]

और यहाँ यम के रूप में एक ही स्थिरता है:

- model: myapp.person
  pk: 1
  fields:
    first_name: John
    last_name: Lennon
- model: myapp.person
  pk: 2
  fields:
    first_name: Paul
    last_name: McCartney

आप इस डेटा को अपने ऐप के अंदर एक fixtures निर्देशिका में संग्रहीत करेंगे।

लोड हो रहा डेटा आसान है: बस <fixturename> करें <fixturename> लोड करें <fixturename> , जहां <fixturename> आपके द्वारा बनाई गई स्थिरता फ़ाइल का नाम है। हर बार जब आप loaddata चलाते हैं, तो डेटा को loaddata से पढ़ा जाएगा और डेटाबेस में फिर से लोड किया जाएगा। इसका मतलब यह है कि यदि आप एक स्थिरता द्वारा बनाई गई पंक्तियों में से एक को बदलते हैं और फिर loaddata चलाते हैं, तो आप अपने द्वारा किए गए परिवर्तनों को मिटा देंगे।

जहाँ Django को फिचर फाइल मिलती है

डिफ़ॉल्ट रूप से, Django fixtures लिए प्रत्येक एप्लिकेशन के अंदर fixtures निर्देशिका में दिखता है। आप FIXTURE_DIRS सेटिंग को अतिरिक्त डायरेक्टरी की सूची में सेट कर सकते हैं जहाँ Django को देखना चाहिए।

जब आप manage.py loaddata चला रहे हैं, तो आप manage.py loaddata फ़ाइल के लिए एक पथ भी निर्दिष्ट कर सकते हैं, जो सामान्य निर्देशिकाओं की खोज को ओवरराइड करता है।

यह भी देखें

फिक्स्चर का उपयोग परीक्षण रूपरेखा द्वारा एक सुसंगत परीक्षण वातावरण स्थापित करने में मदद करने के लिए भी किया जाता है।