اذهب إلى المحتوى

السؤال

نشر

في مشروع جانغو Django لدي نموذجين Models. ولكل نموذج من النموذجين تابع manager خاص يُعيد مجموعة مختلفة من الكائنات، بناءً على خاصية في الكائن.

هل هناك أي طريقة للحصول على مجموعة استعلام QuerySet (أو مجرد قائمة كائنات list of objects) تكون عبارة عن اتحاد QuerySets التي يتم إرجاعها بواسطة كل تابع manager معًا؟

أبحث عن شبء مثل جملة UNION في SQL لكي يتم دمج نتيجة أكثر من إستعلام معًا.

Recommended Posts

  • 1
نشر

الطرق المختلفة لدمج مجموعتي بحث (QuerySet):

  • مجموعتا البحث من نفس النموذج Model:  توجد عدة طرق لدمج مجموعتي بحث من نفس النموذج
    • باستخدام رمز الأنبوب (Pipe) | :
      # q1, q2 and q3         لنفرض لدينا مجموعات البحث التالية
      # للدمج بين كل المجموعات  نستخدم
      combined_result= q1 | q2 | q3

       

    • باستخدام itertools: توفر itertools طريقة تسلسلية تسمح لك بسهولة الجمع بين مجموعتين أو أكثر من مجموعات البحث من نفس النماذج أو نماذج مختلفة.

      from itertools import chain 
      combined_list = list(chain(q1,q2))

       

  • مجموعتا البحث من نماذج مختلفة: 

    • باستخدام الدالة union: تقوم هذه الدالة باستخدام UNION الخاص ب SQL لدمج مجموعتين أو أكثر :

      qs1.union(qs2, qs3)

       

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...