Django में यह जांचने के लिए कि क्वेरी के लिए कोई प्रविष्टि मौजूद है या नहीं
sc=scorm.objects.filter(Header__id=qp.id)
यह कैसे php में किया गया था
if(mysql_num_rows($resultn)) {
// True condition
}
else {
// False condition
}
Django में यह जांचने के लिए कि क्वेरी के लिए कोई प्रविष्टि मौजूद है या नहीं
sc=scorm.objects.filter(Header__id=qp.id)
यह कैसे php में किया गया था
if(mysql_num_rows($resultn)) {
// True condition
}
else {
// False condition
}
जवाबों:
उपयोग करें count()
:
sc=scorm.objects.filter(Header__id=qp.id)
if sc.count() > 0:
...
उदाहरण के len()
लिए, क्वेरीसैट का मूल्यांकन अभी तक नहीं किया गया है:
count()
SELECT COUNT(*)
पर्दे के पीछे प्रदर्शन करता है , इसलिए आपकोcount()
पायथन ऑब्जेक्ट्स में रिकॉर्ड को लोड करने औरlen()
परिणाम पर कॉल करने के बजाय हमेशा उपयोग करना चाहिए ।
इसे ध्यान में रखते हुए, जब क्वेरीस का मूल्यांकन किया जाता है, तो यह पढ़ने लायक हो सकता है।
यदि आप उपयोग करते हैं get()
, उदाहरण के लिए scorm.objects.get(pk=someid)
, और ऑब्जेक्ट मौजूद नहीं है, तो एक ObjectDoesNotExist
अपवाद उठाया जाता है:
from django.core.exceptions import ObjectDoesNotExist
try:
sc = scorm.objects.get(pk=someid)
except ObjectDoesNotExist:
print ...
अद्यतन:
इसका उपयोग करना भी संभव है exists()
:
if scorm.objects.filter(Header__id=qp.id).exists():
....
True
यदि QuerySet में कोई परिणाम हैं, औरFalse
यदि नहीं , तो लौटाता है । यह क्वेरी को सबसे सरल और सबसे तेज़ तरीके से करने की कोशिश करता है, लेकिन यह सामान्य क्वेरी क्वेरी के समान लगभग एक ही क्वेरी को निष्पादित करता है।
if scorm.objects.filter(Header__id=qp.id).exists()
Django 1.2 के रूप में, आप उपयोग कर सकते हैं exists()
:
https://docs.djangoproject.com/en/dev/ref/models/querysets/#exists
if some_queryset.filter(pk=entity_id).exists():
print("Entry contained in queryset")
.objects.get(pk=...)
मार्ग से भी तेज प्रतीत होता है
यह मेरे लिए काम किया!
अगर some_queryset.objects.all () मौजूद है (): प्रिंट करें ("यह तालिका खाली नहीं है")