डेटाबेस में डेटा डालें
निम्नलिखित विधियाँ आपको डेटाबेस में डेटा सम्मिलित करने की अनुमति देती हैं।
-
बनाएँ (**Kwargs) -> मॉडल
-
get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) -> Tuple[Model, bool] -
update_or_create(**kwargs) -> Model -
bulk_create(objects: List[Model]) -> None -
मॉडल * Model.save () विधि * Mo.upsert () विधि \ * Model.save \ _ lated () विधि
-
क्वेरी सेट एजेंट *
QuerysetProxy.create(**kwargs)विधि *QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs)विधि \ *QuerysetProxy.update_or_create(**kwargs)विधि
बनाएँ
बनाएँ (**Kwargs): -> मॉडल
नमूना उदाहरण बनाएं, इसे डेटाबेस में सहेजें, और नमूना को अपडेट करने के लिए वापस जाएं (pk आबादी है यदि पारित नहीं किया गया है और ऑटो-वेतन वृद्धि सेट है)।
अनुमत kwarफ़ील्ड नाम और सही मान प्रकारों नमूना हैं।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
एक अन्य दृष्टिकोण नमूना निर्माण और दृढ़ता है।
1 2 | |
!!!टिप नमूना नमूना में अन्य तरीकों की जाँच करें
प्राप्त करें या बनाएं
get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) -> Tuple[Model, bool]
विधियों का एक संयोजन बनाएं और प्राप्त करें।
मानदंडों को पूरा करने वाली पंक्तियों को प्राप्त करने का प्रयास, और यदि कोई Noअपवाद फेंक दिया जाता है, तो दिए गए kwarऔर \ _ डिफ़ॉल्ट के साथ एक नई पंक्ति बनाई जाती है।
_defaults शब्दकोश प्रदान करते समय, _defaults में सेट किए गए मान हमेशा सेट किए जाएंगे, जिसमें स्पष्ट रूप से प्रदान किए गए ओवरराइड करना शामिल है।get_or_create(_defaults: {"title": "I win"}, title="never used") हमेशा शीर्षक के रूप में "मैं जीता" का उपयोग करेगा चाहे आप kwarमें अपना स्वयं का मूल्य प्रदान करें या नहीं।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
!!!चेतावनी, डेटाबेस में बराबर पंक्तियाँ होने के बावजूद, ऊपर दिए गए उदाहरण में एल्बम और एल्बम 2 2 अलग-अलग पायथन ऑब्जेक्ट हैं! उनमें से एक को अपडेट करने से दूसरा ताज़ा नहीं होगा जब तक कि आप डेटाबेस से स्पष्ट रूप से () नया डेटा लोड नहीं करते।
ध्यान दें कि यदि आप एक नई वस्तु बनाना चाहते हैं, तो आपको या तो pk कॉलम मान पास करना होगा, या pk कॉलम को ऑटो-इन्क्रीमेंट पर सेट किया जाना चाहिए
अपडेट या बनाएं
update_or_create(**kwargs) -> Model
नमूना अपडेट करें, या डेटाबेस में कोई मिलान नहीं होने पर एक नया नमूना बनाएं।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | |
ध्यान दें कि यदि आप एक नई वस्तु बनाना चाहते हैं, तो आपको या तो pk कॉलम मान पास करना होगा, या pk कॉलम को ऑटो-इन्क्रीमेंट पर सेट किया जाना चाहिए
बैच निर्माण
bulk_create(objects: List["Model"]) -> None
आपको एक साथ कई ऑब्जेक्ट बनाने की अनुमति देता है।
आपको नमूना वस्तुओं की एक मान्य सूची पास करने की आवश्यकता है।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | |
नमूना विधि
प्रत्येक नमूना उदाहरण में स्वयं को सहेजने, अपडेट करने या लोड करने के तरीकों का एक सेट होता है।
बचाओ
आप Query.() विधि का उपयोग कर सकते हैं या नमूना को एक सामान्य dके रूप में आरंभ कर सकते नमूना और फिर एक नया नमूना बनाने के लिए () विधि को कॉल कर सकते हैं।
!!!टिप मॉडल-सेव में सेव () विधि के बारे में अधिक पढ़ें
अपडेट डालें
यह नमूना के सहेजें () या अद्यतन (**kwargs) विधियों के लिए एक प्रॉक्सी है। यदि pk सेट नहीं है, तो सहेजें () विधि को बुलाया जाएगा।
!!!टिप मॉडल-अपसर्ट में upsert () विधि के बारे में अधिक पढ़ें
संबंधित सहेजें
विधि नमूना के सभी संबंधों पर पुनरावृत्ति करती है जिसे विधि कहा जाता है और प्रत्येक असहेजे गए नमूना पर upsert () विधि को कॉल करता है।
!!!टिप मॉडल-सेव-लेटेड में सेव \ _ लेटेड () विधि के बारे में अधिक पढ़ें
QueryProविधि
प्रासंगिक MToफ़ील्ड और seसीधे एक्सेस करते समय, संबंधित मॉडल की एक सूची वापस आ जाती है।
लेकिन यह क्वेरीसेट एपीआई के एक सबसेट को भी उजागर करता है, इसलिए आप मूल नमूना से सीधे संबंधित मॉडल को फ़िल्टर कर सकते हैं, बना सकते हैं, चुन सकते हैं।
बनाएँ
निर्माण फ़ंक्शन ऊपर दिए गए एक के समान है, लेकिन आपको रिश्ते के दूसरे छोर से संबंधित वस्तुओं को बनाने की अनुमति देता है।
!!!QueryProके बारे में अधिक जानने के लिए, QueryProअनुभाग पर जाएं
प्राप्त करें या बनाएं
वास्तव में ऊपर दिए गए फ़ंक्शन के समान है, लेकिन आपको संबंध के दूसरे छोर से संबंधित ऑब्जेक्ट्स को क्वेरी करने या बनाने की अनुमति देता है।
!!!QueryProके बारे में अधिक जानने के लिए, QueryProअनुभाग पर जाएं
अपडेट या बनाएं
अपडेट \ _ या \ _ फ़ंक्शन बिल्कुल ऊपर के समान है, लेकिन आपको रिश्ते के दूसरे छोर से संबंधित ऑब्जेक्ट अपडेट करने या बनाने की अनुमति देता है।
!!!QueryProके बारे में अधिक जानने के लिए, QueryProअनुभाग पर जाएं