Django Academy · درس

‏all() وget() وfilter()

الطرق الأساسية لاسترداد الكائنات

الدرس 1 من 413 خطوة

‏all() وget() وfilter() درس مجاني في Django Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Django Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Django Academy 4 دروس في المجموع.

تعرّف إلى Manager

يمنحك كل نموذج مدير objects مجانًا. وهو بوابتك إلى قاعدة البيانات، ومنه يبدأ كل استعلام تكتبه. 🚪

Book.objects

أحضر كل شيء

استدعِ all() لطلب كل صفوف الجدول. وستحصل على QuerySet يمكنك تكراره أو حساب عناصره أو تحسينه أكثر.

books = Book.objects.all()

QuerySet ليست قائمة

تبدو QuerySet شبيهة بالقائمة، لكنها كسولة. ينتظر Django حتى تستخدم النتائج فعلًا قبل الوصول إلى قاعدة البيانات.

أحضر صفًا واحدًا بالضبط

استخدم get() عندما تتوقع صفًا واحدًا مطابقًا، مثل سجل واحد تعثر عليه باستخدام مفتاحه الأساسي.

book = Book.objects.get(pk=1)

متى تفشل get()؟

تتسم get() بالصرامة. فإذا لم يطابق أي شيء، ترفع DoesNotExist، لذا استخدمها فقط عندما تتأكد من وجود صف واحد.

Book.objects.get(pk=999)

مطابقات كثيرة جدًا

إذا عثرت get() على أكثر من صف، فإنها ترفع MultipleObjectsReturned. فهي تعني فعلًا كائنًا واحدًا لا غير.

صفِّ للحصول على مجموعة جزئية

استخدم filter() عندما تريد الصفوف المطابقة لشرط. فهي تعيد QuerySet حتى إذا طابق الشرط صف واحد فقط.

Book.objects.filter(published=True)

تعيد filter صفرًا أو أكثر

بخلاف get()، لا ترفع filter() استثناءً عند عدم وجود مطابقات. بل تحصل ببساطة على QuerySet فارغة بدلًا من الخطأ.

Book.objects.filter(author="Nobody")

شروط متعددة

مرّر عدة وسائط مسماة إلى filter()، وسيجمعها Django باستخدام AND. يجب أن يكون كل شرط صحيحًا.

Book.objects.filter(published=True, year=2024)

get وfilter في لمحة

استخدم get() لكائن واحد مضمون، وfilter() لمجموعة. ويجنبك هذا الاختيار البسيط معظم أخطاء الاستعلامات لدى المبتدئين.

سلسِل عوامل التصفية

بما أن filter() تعيد QuerySet، يمكنك سلسلة الاستدعاءات لتضييق النتائج خطوةً بخطوة قبل الوصول إلى قاعدة البيانات.

Book.objects.filter(published=True).filter(year=2024)

تحقق سريع

تتوقع كتابًا واحدًا ولا توجد مطابقة. أي استدعاء سيرفع خطأً؟

مراجعة

أحسنت! يجلب all() كل شيء، ويحضر get() صفًا واحدًا محددًا، وتعيد filter() مجموعة جزئية يمكنك تسلسلها. 🎉

البدء مجانًا

تعلم Python مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «‏all() وget() وfilter()» مجاني؟

نعم — نص درس «‏all() وget() وfilter()» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Django Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Django Academy 4 دروس في المجموع.

ماذا ستتعلم في «‏all() وget() وfilter()»؟

الطرق الأساسية لاسترداد الكائنات تتمرن على Django Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Django Academy؟

لا تُشترط خبرة سابقة. Django Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «‏all() وget() وfilter()»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Django Academy هذا؟

نعم. كل درس في Django Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ‏all() وget() وfilter()
  2. عمليات البحث في الحقول وexclude()
  3. ‏order_by والتقطيع والتقييم الكسول
  4. ‏values وvalues_list وcount
← العودة إلى Django Academy