Django ORM में चार फ़ील्ड को पूर्णांक में कास्ट करना
Django ORM के साथ क्वेरी करते समय, आपको ऐसे परिदृश्यों का सामना करना पड़ सकता है जहां आपको एक कैरेक्टर फ़ील्ड कास्ट करने की आवश्यकता होती है एक पूर्णांक के लिए. यह तब उत्पन्न हो सकता है जब फ़ील्ड को चारफ़ील्ड के रूप में संग्रहीत किया जाता है लेकिन आप पूर्णांक मानों का उपयोग करके गणना या तुलना करना चाहते हैं।
CAST अनुपलब्ध क्यों है?
के पुराने संस्करणों में ऐसे परिदृश्यों के लिए Django, कच्ची SQL क्वेरीज़ या डेटाबेस फ़ंक्शंस आवश्यक थे। हालाँकि, Django 1.10 में कास्ट फ़ंक्शन की शुरुआत के साथ, आप इस कास्टिंग को ORM के भीतर ही प्राप्त कर सकते हैं। पूर्णांक, निम्नलिखित सिंटैक्स का उपयोग करें:
django.db.models से कास्ट, इंटीजरफ़ील्ड आयात करें छात्र.वस्तु.एनोटेट( student_id_int=कास्ट('student_id', IntegerField()) .filter(student_id_int__contains=97318).order_by('-student_id_int')
यह क्वेरीसेट को student_id_int नामक एक नए फ़ील्ड के साथ एनोटेट करेगा, जिसे एक पूर्णांक प्रकार में डाला जाता है। फिर आप इच्छानुसार फ़िल्टर करने और ऑर्डर करने के लिए इस नए फ़ील्ड का उपयोग कर सकते हैं।from django.db.models import Cast, IntegerField
students.objects.annotate(
student_id_int=Cast('student_id', IntegerField())
).filter(student_id_int__contains=97318).order_by('-student_id_int')
कास्ट का उपयोग करने से कई लाभ मिलते हैं:
प्रकार-सुरक्षित:
सुनिश्चित करता है कि परिणामी मान निर्दिष्ट प्रकार का है।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3