ध्यान रखें कम से कम MySQL में आप वास्तव में उन्हें केस संवेदी बनाने के लिए अपने तालिकाओं में utf8_bin
मिलान सेट करने के लिए है कि किसी भी उपयोगकर्ता के इनपुट से बचने। अन्यथा वे मामले संरक्षण कर रहे हैं लेकिन मामले असंवेदनशील हैं। जैसे
>>> models.Person.objects.filter(first__in=['John', 'Ringo'])
[<Person: John Lennon>, <Person: Ringo Starr>]
>>> models.Person.objects.filter(first__in=['joHn', 'RiNgO'])
[<Person: John Lennon>, <Person: Ringo Starr>]
तो, आप इस मुद्दे को पूरी तरह अनदेखा करने के लिए चुन सकते हैं यदि पोर्टेबिलिटी महत्वपूर्ण नहीं है और आप MySQL का उपयोग करें।
Postgres का उपयोग करने, केस-संवेदी अनुक्रमित समर्थन करता है, तो यह है कि मामले के लिए यह एक iregex मिलान की तुलना में प्रत्येक आइटम के लिए अलग "iexact" क्वेरी को चलाने के लिए तेजी से हो सकता है। Django के पोस्टग्रेज़ बैकएंड में "iexact" खोज एक UPPER() ट्रांसफॉर्म का उपयोग करती है, इसलिए उस पंक्ति के लिए UPPER() पर एक कस्टम इंडेक्स के साथ एक गति प्राप्त करना संभव है। – Evgeny
मेरी इच्छा है कि वे __iin – JREAM
@Evgeny को लागू करें, यदि आप कोई जवाब जोड़ सकते हैं, या हमें एक लिंक दे सकते हैं। धन्यवाद! –