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

السؤال

نشر

لدي مجموعة من المعرفات ids وأريد جلب كل مستخدم من خلال المعرفة الخاص به، وقمت بالنجاخ في القيام بهذا الأمر، لكنه يستغرق وقت طويل كلما زادت عدد المعرفات ids، هل هناك طريقة أفضل لتنفيذ الكود التالي :

ids = [1, 2, 3, 4]
for id in ids:
    User.objects.filter(pk=id)

هل يمكن جلب كل المستخدمين من خلال إستعلام واحد فقط، شيء مثل التالي على سيل المثال:

User.objects.filter(pk=ids)

كيف يمكنني القيام بذلك في جانغو Django؟

Recommended Posts

  • 1
نشر

تتيح لغة SQL الإستعلام عن مجموعة من السجلات من خلال جملة واحدة كالتالي:

SELECT * FROM users WHERE id in (1, 2, 3, 4)

كما يوفر Django نفس هذه الطريقة في الإستعلام من خلال المعامل in، كالتالي:

User.objects.filter(pk__in=[1, 2, 3, 4])

أو يمكنك البحث من خلال شرط معين:

User.objects.filter(pk__gt=4)

 

الكود السابق سوف يقوم بإرجاع كل المستخدمين الذين لديهم معرف id أكبر من 4

كما يمكنك أن تستعمل التابع in_bulk أيضًا:

User.objects.in_bulk([1, 2, 3, 4])

يأخذ هذا التابع قائمة بقيم الحقول و واسم الحقل الذي سيتم إستخدامه لفهرسة هذه القيم (يتم إستخدام الأرقام بشكل إفتراضي)، ويعيد قاموسًا يعين كل قيمة إلى instance من الكائن بقيمة الحقل المحددة.

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...