Amer Abdallah نشر 12 سبتمبر 2021 أرسل تقرير نشر 12 سبتمبر 2021 عندما أقوم بعمل إستعلام من queryset في جانغو، كيف أعرف إن كان queryset يحتوي على نتائج من قاعدة البيانات أم لا؟ مثال: users = Users.objects.filter(name__iexact = 'Amer Abdallah') كيف أقوم بعمل شرط يتحقق فقط في حالة تم إعادة نتائج من قاعدة البيانات (في هذه الحالة وجود مستخدم باسم Amer Abdallah)؟ وفي حالة لم يكن هناك أي نتائج يتم تنفيذ كود مختلف؟ 3 اقتباس
1 سامح أشرف نشر 12 سبتمبر 2021 أرسل تقرير نشر 12 سبتمبر 2021 الكائن queryset يوفر التابع exists والذي من خلال تستطيع معرفة إن كان هناك نتائج أم لا، حيث يعيد True في حالة وجود نتائج، و False في حالة كان الكائن فارغًا، ويمكنك إستخدامه على النحو التالي: if users.exists(): # أفعل شيء ما else: # أفعل شيء آخر كما يمكنك التحقق من الـ queryset بشكل مباشر كالتالي: if users: # أفعل شيء ما else: # أفعل شيء آخر 1 اقتباس
0 Ali Haidar Ahmad نشر 12 سبتمبر 2021 أرسل تقرير نشر 12 سبتمبر 2021 لمعرفة فيما إذا كان هناك نتائج أم لا يمكنك أيضاً القيام بذلك من خلال محاولة الوصول إلى أول عنصر في نتيجة الاستعلام، فإذا لم يكن موجوداً سيعطي بايثون خطأ IndexError: try: Users[0] # موجود except IndexError: # غير موجود وهذه الطريقة مفيدة جداً (أسرع بكثير في بعض الأحيان) إذا كان لديك عدد كبير من العناصر. كما يمكنك استخدام فإذا كان هناك نتيجة يقوم بردها (وبالتالي تكافئ True إذا وضعناها ضمن عبارة شرطية) وإلا سيعطي None أي تكافئ (False): if Users.first(): # موجود كذلك يمكنك استخدام Users.count والفرق بين هذه الطرق هو الأداء. 1 اقتباس
0 محمد أبو عواد نشر 13 سبتمبر 2021 أرسل تقرير نشر 13 سبتمبر 2021 يمكنك استخدام الدالة count() التي تقوم بإرجاع عدد النتائج المسترجعة, اذا كانت تساوي صفر فلا يوجد أي نتائج والعكس صحيح if users.count() == 0: # غير موجود else: # موجود 1 اقتباس
السؤال
Amer Abdallah
عندما أقوم بعمل إستعلام من queryset في جانغو، كيف أعرف إن كان queryset يحتوي على نتائج من قاعدة البيانات أم لا؟ مثال:
كيف أقوم بعمل شرط يتحقق فقط في حالة تم إعادة نتائج من قاعدة البيانات (في هذه الحالة وجود مستخدم باسم Amer Abdallah)؟ وفي حالة لم يكن هناك أي نتائج يتم تنفيذ كود مختلف؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.