[django] एक क्वेरीसेट में खाली या पूर्ण नाम के लिए फ़िल्टरिंग



Answers

सबसे पहले, Django दस्तावेज़ दृढ़ता से आधारित फ़ील्ड जैसे CharField या TextField के लिए नल मानों का उपयोग न करने की सलाह देते हैं। स्पष्टीकरण के लिए प्रलेखन पढ़ें:

https://docs.djangoproject.com/en/dev/ref/models/fields/#null

समाधान: मुझे लगता है कि आप QuerySets पर विधियों को एक साथ जोड़ सकते हैं। इसे इस्तेमाल करे:

Name.objects.exclude(alias__isnull=True).exclude(alias="")

यह आपको वह सेट देना चाहिए जिसे आप ढूंढ रहे हैं।

Question

मेरे पास first_name, last_name और उपनाम (वैकल्पिक) है जिसे मुझे खोजना है। इसलिए, मुझे उन सभी नाम देने के लिए एक प्रश्न की आवश्यकता है जिनमें उपनाम सेट है।

केवल अगर मैं कर सकता था:

Name.objects.filter(alias!="")

तो, उपर्युक्त के बराबर क्या है?




Django 1.8 से,

from django.db.models.functions import Length

Name.objects.annotate(alias_length=Length('alias')).filter(alias_length__gt=0)



Related