"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Django ORM में एक चारफ़ील्ड को एक पूर्णांक में कैसे कास्ट करें?

Django ORM में एक चारफ़ील्ड को एक पूर्णांक में कैसे कास्ट करें?

2024-11-10 को प्रकाशित
ब्राउज़ करें:950

How to Cast a CharField to an Integer in Django ORM?

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')

कास्ट का उपयोग करने से कई लाभ मिलते हैं:

प्रकार-सुरक्षित:

सुनिश्चित करता है कि परिणामी मान निर्दिष्ट प्रकार का है।

    कच्चे प्रश्नों से बचा जाता है:
  • आपके प्रश्नों को ORM के भीतर रखता है, रखरखाव को सरल बनाता है और कम करता है एसक्यूएल इंजेक्शन का जोखिम। Django ORM में कास्टिंग के बारे में अधिक जानकारी के लिए, दस्तावेज़ देखें:
  • [डेटाबेस फ़ंक्शंस: कास्ट](https://docs.djangoproject.com/en/stable/ref/models/database- फ़ंक्शन/#कास्ट)
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3