Django Academy · درس

عمليات البحث في الحقول وexclude()

أجرِ استعلامات باستخدام contains وgte وin وغيرها

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

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

ما يتجاوز المساواة

تتحقق عوامل التصفية العادية من المساواة، لكن الاستعلامات الفعلية تحتاج إلى نطاقات ومطابقات نصية. وتتيح عمليات البحث في الحقول هذه الإمكانات الإضافية.

الشرطتان السفليتان

تتكون عملية البحث من اسم الحقل، ثم شرطتين سفليتين، ثم العامل. وهذه الصياغة الصغيرة هي الطريقة التي يقرأ بها Django الشروط الأكثر تعقيدًا.

Book.objects.filter(year__gte=2020)

أكبر من وأصغر من

استخدم gt وgte وlt وlte لنطاقات الأرقام أو التواريخ. فهي تقابل مباشرةً عوامل المقارنة في SQL.

Book.objects.filter(price__lt=20)

ابحث داخل النص

تعثر عملية البحث contains على الصفوف التي يحتوي فيها الحقل على السلسلة الفرعية في أي موضع. وهي مفيدة لعمليات البحث البسيطة.

Book.objects.filter(title__contains="Python")

تجاهل حالة الأحرف

أضف i لعمليات البحث عن النصوص غير الحساسة لحالة الأحرف مثل icontains أو iexact، حتى لا تؤثر الأحرف الكبيرة في المطابقة.

Book.objects.filter(title__icontains="python")

البداية والنهاية

طابِق طرفَي السلسلة النصية باستخدام startswith وendswith. ولهما أيضًا نظيران غير حساسين لحالة الأحرف.

Book.objects.filter(title__startswith="The")

مطابقة مجموعة من القيم

يُبقي البحث in على الصفوف التي تظهر قيمتها في قائمة تمررها إليه. وهو أنظف من ربط العديد من عمليات التحقق باستخدام OR.

Book.objects.filter(year__in=[2022, 2023, 2024])

التحقق من القيم الفارغة

استخدم isnull للعثور على الصفوف التي يكون عمودها NULL، أو عيّنه إلى False للعثور على الصفوف التي تحتوي على قيمة.

Book.objects.filter(summary__isnull=True)

اعكس المنطق

قد تريد أحيانًا كل شيء باستثناء نتيجة مطابقة. تُرجع exclude() الصفوف التي لا تستوفي الشرط.

Book.objects.exclude(published=True)

تعمل عمليات البحث في exclude أيضًا

كل عملية بحث عن حقل تعمل مع filter تعمل أيضًا مع exclude(). والفرق الوحيد هو أن النتيجة تكون معكوسة.

Book.objects.exclude(year__gte=2020)

الجمع بين filter وexclude

سلسِل العمليتين معًا للاحتفاظ بمجموعة واستبعاد مجموعة أخرى. كل استدعاء يضيّق QuerySet الكسول نفسه أكثر.

Book.objects.filter(published=True).exclude(price__gt=50)

تحقق سريع

تريد الكتب التي يحتوي عنوانها على "django" بصرف النظر عن حالة الأحرف. أي عملية بحث تناسب ذلك؟

مراجعة

لقد ارتقيت بمستواك! تستخدم عمليات البحث عن الحقول الشرطة السفلية المزدوجة للنطاقات والنصوص، بينما تعكس exclude() أي شرط. 🔍

البدء مجانًا

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

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

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

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

هل درس «عمليات البحث في الحقول وexclude()» مجاني؟

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

ماذا ستتعلم في «عمليات البحث في الحقول وexclude()»؟

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

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

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

كم من الوقت يستغرق درس «عمليات البحث في الحقول وexclude()»؟

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

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

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

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

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