जवाब दो
आप फास्टापी प्रतिक्रिया \ _ मॉडल में pydके बजाय ormar नमूना नमूना के बजाय ormar का उपयोग कर सकते हैं।
आप ormar भी मिला सकते हैं। यदि आवश्यक हो तो pydके साथ मॉडल।
एक प्रतिक्रिया में सबसे आम कार्यों में से एक कुछ क्षेत्रों को बाहर करना है जिन्हें आप प्रतिक्रिया डेटा में शामिल नहीं करना चाहते हैं।
यह मार में विभिन्न तरीकों से प्राप्त किया जा सकता है, इसलिए आप नीचे दिए गए अपने विकल्पों की समीक्षा कर सकते हैं और वह चुन सकते हैं जो आपकी स्थिति के लिए सबसे अच्छा है।
प्रतिक्रिया से फ़ील्ड को बाहर करें
वैकल्पिक क्षेत्र
कृपया ध्यान दें कि प्रत्येक वैकल्पिक फ़ील्ड की आवश्यकता नहीं है, जो माध्य कि वैकल्पिक फ़ील्ड को प्रतिक्रियाओं और अनुरोधों दोनों में छोड़ दिया जा सकता है।
निम्नलिखित में से यदि (any/many/all) होता है तो फ़ील्ड की आवश्यकता नहीं होती है:
- फ़ील्ड को अशक्त = सत्य के रूप में चिह्नित किया गया है
- फ़ील्ड में एक डिफ़ॉल्ट मान या प्रदान की गई कार्यक्षमता है, अर्थात् डिफ़ॉल्ट = "परीक्षण"
- फ़ील्ड सर्वर \ _ डिफ़ॉल्ट मान सेट करता है
- फ़ील्ड एक autoincrement=Trueprimary है \ _ कुंजी फ़ील्ड (नोट ormar. ger\ _ कुंजी डिफ़ॉल्ट ऑटोइन्क्रिमेंट है)
उदाहरण:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
ऊपर दिए गए उदाहरण में, फ़ील्ड आईडी (जो एक ऑटो-इन्क्रीमेंटिंग पूर्णांक है), पहला \ _ नाम (जिसमें अशक्त = सत्य है), और श्रेणी (जिसमें डिफ़ॉल्ट मान है) वैकल्पिक हैं, प्रतिक्रिया में छोड़ दिया जा सकता है, और नमूना अभी भी मान्य किया जाएगा।
यदि फ़ील्ड अशक्त है, तो इसे निर्माण के दौरान और प्रतिक्रिया में पेलोड में शामिल नहीं किया जाना है, इसलिए ऊपर दिए गए उदाहरण के अनुसार, आप कर सकते हैं:
1 2 3 4 | |
यह माध्य है कि यदि आप अनुरोध में पहले \ _ नाम पास नहीं करते हैं, तो यह सही ढंग से मान्य होगा (क्योंकि फ़ील्ड वैकल्पिक है), डेटाबेस में सहेजें और इस फ़ील्ड के बिना एक सहेजा गया रिकॉर्ड लौटाएं (जो मान्य भी होगा)।
!!!ध्यान दें कि यद्यपि आपने फ़ील्ड मान पास नहीं किया है, फ़ील्ड अभी भी प्रतिक्रिया \ _ मॉडल में मौजूद है, जो माध्य यह प्रतिक्रिया डेटा में दिखाई देगा और कोई नहीं पर सेट हो जाएगा।
1 | |
FApi प्रतिक्रिया _मॉडल _बाहर
Fमें एक प्रतिक्रिया \ _ मॉडल \ _ है जो एक सेट को स्वीकार करता है (or list) of क्षेत्र के नाम।
इसकी सीमाएं हैं क्योंकि mar और dभी शब्दकोशों को स्वीकार करते हैं जहां आप बहिष्करण / समावेश कॉलम या नेस्टेड मॉडल सेट कर सकते हैं (more on this below).
चेतावनी ध्यान दें कि प्रतिक्रिया \ _ मॉडल का उपयोग करते समय एक आवश्यक फ़ील्ड को बाहर नहीं किया जा सकता है, क्योंकि यह सत्यापन के दौरान विफल हो जाएगा।
1 2 3 | |
उपरोक्त समापन बिंदु को इस तरह से समझा जा सकता है:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
ध्यान दें कि ऊपर दिए गए उदाहरण में प्रतिक्रिया डेटा से पासवर्ड फ़ील्ड पूरी तरह से कैसे गायब हो जाती है।
1 | |
नेस्टेड नमूना
हालांकि फास्टापी केवल फ़ील्ड नामों के एक सेट को पारित करने की अनुमति देता है, इसलिए इसे बस बाहर रखा गया है, प्रतिक्रिया \ _ मॉडल \ _ का उपयोग करते समय ormar स्मार्ट है।
ओमार में, आप नेस्टेड मॉडल को बाहर करने के लिए दो प्रकार के संकेतन का उपयोग कर सकते हैं।
पहला नेस्टेड फ़ील्ड के साथ एक शब्दकोश है जो नमूना ट्री संरचना का प्रतिनिधित्व करता है, और दूसरा फ़ील्ड नामों के लिए एक डबल-रेखांकित पथ है।
मान लीजिए कि हमारी उपयोगकर्ता श्रेणी एक अलग नमूना है:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
यदि आप प्रतिक्रिया में श्रेणियों से प्राथमिकता को बाहर करना चाहते हैं, तो आप अभी भी पैरामीटर का उपयोग कर सकते हैं।
1 2 3 | |
ध्यान दें कि आप नमूना में गहराई से जाने के लिए डबल अंडरस्कोर का उपयोग कर सकते हैं, और यदि आप नेस्टेड नमूना से कई क्षेत्रों को बाहर करना चाहते हैं, तो आपको उन्हें पूर्ण पथ के साथ पूर्ववर्ती करने की आवश्यकता है। उदाहरण मेंresponse_model_exclude={"category__priority", "category__other_field", category__nested_model__nested_model_field} ETC।
!!!नोट संभावित बहिष्करण के बारे में अधिक पढ़ने के लिए और बहिष्करण शब्दकोश या सेटिंग्स का निर्माण कैसे करें, प्रलेखन के क्षेत्र अनुभाग पर जाएं
ध्यान दें कि प्रतिक्रिया के अलावा \ _ मॉडल \ _ मापदंडों को बाहर करें, फास्टापी pydसे विरासत में मिले अन्य मापदंडों का भी समर्थन करता है। यह सब ormar के साथ भी काम करता है, लेकिन कुछ बारीकियां हो सकती हैं, इसलिए प्रलेखन के निर्णय अनुभाग को पढ़ना सबसे अच्छा है।
मॉडल.मॉडल \ _ डंप () में छोड़ें
या, आप बस ormar से एक शब्दकोश वापस कर सकते हैं। मॉडल और इसका उपयोग करें।
इस तरह, आप एक शब्दकोश के रूप में बहिष्कृत / शामिल करें और नेस्टेड मॉडल पर फ़ील्ड को बाहर कर सकते हैं।
!!!चेतावनी प्रतिक्रिया \ _ मॉडल का उपयोग नहीं करने से एपीआई प्रलेखन में कोई प्रतिक्रिया उदाहरण और स्कीमा नहीं होगा, क्योंकि सिद्धांत रूप में प्रतिक्रिया का कोई प्रारूप हो सकता है।
1 2 3 4 5 | |
!!!ध्यान दें कि यदि आप अनुरोध में पासवर्ड फ़ील्ड पास करते हैं, तो भी उपरोक्त उदाहरण पासवर्ड फ़ील्ड को अमान्य बना देगा, लेकिन फ़ील्ड अभी भी मौजूद होगी क्योंकि यह प्रतिक्रिया स्कीमा का हिस्सा है और मान कोई नहीं पर सेट किया जाएगा।
यदि आप फ़ील्ड को पूरी तरह से इस तरह से बाहर करना चाहते हैं, तो बस प्रतिक्रिया \ _ मॉडल का उपयोग न करें और इसे नमूना \ _ डंप () में बाहर करें
या, आप बस एक ormar नमूना से एक शब्दकोश वापस कर सकते हैं। इस तरह, आप एक शब्दकोश में बहिष्करण / शामिल भी कर सकते हैं और नेस्टेड मॉडल पर फ़ील्ड को बाहर कर सकते हैं।
!!!ध्यान दें कि सिद्धांत रूप में, आप यहां प्रतिक्रिया सत्यापन खो देते हैं, लेकिन जब से आप ormar पर काम कर रहे हैं। मॉडल, डेटाबेस क्वेरी के बाद प्रतिक्रिया डेटा पहले से ही मान्य है (क्योंकि ormar मॉडल pydमॉडल हैं)।
इसलिए यदि आप प्रतिक्रिया \ _ मॉडल को पूरी तरह से छोड़ देते हैं, तो आप निम्नलिखित कर सकते हैं:
1 2 3 4 | |
!!!ध्यान दें कि जब आप प्रतिक्रिया \ _ मॉडल छोड़ते हैं, तो आप अब आवश्यक फ़ील्ड को भी बाहर कर सकते हैं क्योंकि प्रतिक्रिया अब लौटने के बाद मान्य नहीं है।
1 | |
ओमार से पाइडेंटिक मॉडल बनाना। मॉडल
चूंकि फ़ील्ड को बाहर करने का कार्य बहुत आम है, इसलिए मौजूदा ormar से dमॉडल उत्पन्न करने का एक विशेष तरीका है। सभी फ़ील्ड में फिर से प्रवेश किए बिना मॉडल।
यह विधि सभी नमूना वर्गों के लिए उपलब्ध \ _ pyd() विधि है।
1 2 3 4 5 | |
!!! नोट अधिक उदाहरण देखने और अधिक पढ़ने के लिए, प्रलेखन के \ _ pydअनुभाग पर जाएं।
चेतावनी प्राप्त करें \ _ pydantic विधि एक एल्गोरिथ्म के आधार पर नेस्टेड नमूना ट्री में सभी मॉडल उत्पन्न करती है जो नमूना में छोरों से बचने की अनुमति देती है (एक ही एल्गोरिथ्म जिसका उपयोग नमूना \ _ डंप में किया जाता है (), select\ _all (), आदि)
1 2 3 | |
इस तरह आप पेड़ के विभिन्न पत्तों पर विभिन्न क्षेत्रों को बाहर / शामिल कर सकते हैं।
स्वतंत्र ब्रैकट नमूना
अंतिम समाधान मैन्युअल रूप से अलग dमॉडल बनाना है। यह बिल्कुल एक सामान्य Fएप्लिकेशन की तरह काम करता है, इसलिए आप विभिन्न प्रतिक्रिया और अनुरोध मॉडल आदि का उपयोग कर सकते हैं।
नमूना:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |