Amer Abdallah نشر 16 سبتمبر 2021 أرسل تقرير نشر 16 سبتمبر 2021 في Django ، ما الفرق بين الإستعلامين التاليين: Post.objects.values_list('comment_id', flat=True).distinct() والإستعلام التالي: Post.objects.values('comment_id').distinct() هدفي هو الحصول على قائمة بمعرفات التعليقات IDs تحت كل مقالة. لقد قرأت توثيق جانغو Django، وفي الواقع استخدمت كلا الأسلوبين، ويبدو أن النتائج متشابهة بشكل كامل. ما هو الفرق بين إستخدام كلا الأسلوبين السابقين؟ 1 اقتباس
1 سامح أشرف نشر 16 سبتمبر 2021 أرسل تقرير نشر 16 سبتمبر 2021 التابع values يقوم بإعادة QuerySet تحتوي على قواميس dictionaries، وتكون نتيجته كالتالي: <QuerySet [{'comment_id': 1}, {'comment_id': 2}]> بينما التابع values_list يقوم بإعادة كائن QuerySet يحتوي على tuples، وتكون نتيجته كالتالي: <QuerySet [(1,), (2,)]> إذا كنت تستخدم التابع values_list لإعادة حقل واحد فيمكنك أن تضع الخاصية flat بقيمة true لإعادة كائن QuerySet يحتوي على كل المعرفات في شكل قيمة واحدة بدلًا من tuple، كالتالي: <QuerySet [1, 2]> 2 اقتباس
0 Ahmed Sharshar نشر 16 سبتمبر 2021 أرسل تقرير نشر 16 سبتمبر 2021 values تقوم باعادة QuerySet والتى تقوم باعادة مجموعة من القواميس dictionaries. values_list تقوم باعادة QuerySet والتى تقوم بارجاع tubles المثال التالي يوضح الفرق بين الطريقيتين: >>> list(Article.objects.values_list('id', flat=True)) # flat=True تقوم بتحويل ال tubles الى list [1, 2, 3, 4, 5, 6] >>> list(Article.objects.values('id')) [{'id':1}, {'id':2}, {'id':3}, {'id':4}, {'id':5}, {'id':6}] 1 اقتباس
السؤال
Amer Abdallah
في Django ، ما الفرق بين الإستعلامين التاليين:
والإستعلام التالي:
هدفي هو الحصول على قائمة بمعرفات التعليقات IDs تحت كل مقالة. لقد قرأت توثيق جانغو Django، وفي الواقع استخدمت كلا الأسلوبين، ويبدو أن النتائج متشابهة بشكل كامل. ما هو الفرق بين إستخدام كلا الأسلوبين السابقين؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.