LunaNotes

إنشاء نظام المقالات المشابهة في Django باستخدام الوسوم المشتركة

Convert to note

مقدمة

في هذا الدرس، نستعرض كيفية إنشاء ميزة عرض "مقالات مشابهة" داخل موقع مبني باستخدام Django، بناءً على الوسوم المشتركة بين المقالات.

المشكلة الأساسية

عندما يزور المستخدم صفحة مقال معين، نرغب بإظهار قائمة بمقالات أخرى تشترك في نفس الوسوم (Tags) ليستطيع المستخدم اكتشاف محتوى ذي صلة.

الخطوات التفصيلية

1. جلب الوسوم المرتبطة بالمقال الحالي

  • نقوم بإنشاء استعلام لجلب قائمة الوسوم (Tags) المرتبطة بالمقال المفتوح حالياً باستخدام Django ORM.
  • نستخدم values_list مع خاصية flat=True لجلب قائمة مخصصة من معرّفات الوسوم بدون تعقيد.

2. استعلام مقالات تحتوي على أي من الوسوم المشتركة

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

3. حساب عدد الوسوم المشتركة وترتيب النتائج

  • باستخدام annotate مع دالة Count نجمع عدد الوسوم المشتركة بين المقالات.
  • نرتب قائمة المقالات تنازليًا بحسب عدد الوسوم المشتركة لإظهار الأكثر تشابهًا أولاً.

4. عرض المقالات المشابهة في الصفحة

  • نمرر قائمة المقالات المشابهة إلى قالب العرض (Template) عبر السياق.
  • في القالب، نعرض عناوين المقالات المشابهة تحت المقال الحالي مع روابطها.

مثال عملي

  • إذا كان لدينا مقال عن "كريستيانو رونالدو" وعليه وسوم مثل "لا ليغا" و"ريال مدريد"، و مقال آخر عن "ليونيل ميسي" عليه وسوم مثل "لا ليغا" و"برشلونة"، فإن المقالتين تظهران كمقالات مشابهة لبعضهما لأنهما تشتركان في الوسم "لا ليغا".

نصائح وإرشادات

  • تأكد من استخدام distinct() في الاستعلامات لتجنب تكرار المقالات.
  • استخدم خاصية exclude() لاستبعاد المقال الحالي من النتائج.
  • احرص على تحسين أداء الاستعلامات باستخدام الفلاتر والشروط المناسبة.

الخلاصة

باتباع هذه الخطوات، يمكنك بناء ميزة قوية لعرض المقالات المشابهة استناداً إلى الوسوم المشتركة مما يعزز تجربة المستخدم ويزيد من تفاعل الزوار على موقعك المبني بـ Django. الدرس يتناول الكود الكامل ويشرح كل سطر منه لتسهيل الفهم والتطبيق العملي.

لمزيد من التعلم حول استعلامات Django وكيفية استغلالها بكفاءة، يمكنك الاطلاع على WordPress: El Sistema de Gestión de Contenidos que Domina Internet لفهم أفضل حول نظم إدارة المحتوى وكيفية إدارة البيانات بشكل فعال.

كما يمكن أن تستفيد من ترجمة مفاهيم بناء مواقع ويب قوية والاستفادة من الذكاء الاصطناعي من خلال قراءة Build Stunning AI-Powered Websites with Claude Code: No Coding Needed لتعزيز مهاراتك في تطوير المواقع.

وأخيرًا، إذا كنت مهتمًا بكيفية التعامل مع البيانات وتقنيات البرمجة المتقدمة، فإن شرح मल्टीडायमेंशनल और 2D अर्रे: कोडिंग, इनपुट और मैट्रिक्स मल्टिप्लिकेशन يقدم خلفية تقنية غنية قد تساعدك في توسيع مهاراتك البرمجية.

Heads up!

This summary and transcript were automatically generated using AI with the Free YouTube Transcript Summary Tool by LunaNotes.

Generate a summary for free

Related Summaries

ملخص درس القوى والأعداد السالبة

ملخص درس القوى والأعداد السالبة

في هذا الدرس، يشرح مستر محمد كيفية التعامل مع القوى والأعداد السالبة، بما في ذلك كيفية تحويل الأعداد السالبة إلى أعداد موجبة عند رفعها لقوة زوجية، وكيفية التعامل مع الكسور والقوى السالبة. يتضمن الدرس أمثلة توضيحية وأسئلة شائعة.

شرح مبسط لإدارة قواعد البيانات باستخدام SQLite في الصف الحادي عشر

شرح مبسط لإدارة قواعد البيانات باستخدام SQLite في الصف الحادي عشر

هذا الفيديو يقدم شرحاً مفصلاً لكيفية استخدام برنامجي SQLite وDB Browser لإدارة قواعد البيانات، مع استعراض خطوات إنشاء الجداول، إضافة وتحديث وحذف البيانات. يحتوي الفيديو على أمثلة عملية وأكواد برمجية لتسهيل فهم العملية التعليمية وتحضير الطلاب للاختبارات.

Mastering Pandas DataFrames: A Comprehensive Guide

Mastering Pandas DataFrames: A Comprehensive Guide

Learn how to use Pandas DataFrames effectively in Python including data import, manipulation, and more.

تعلم أساسيات البرمجة بلغة بايثون خطوة بخطوة

تعلم أساسيات البرمجة بلغة بايثون خطوة بخطوة

دورة شاملة تشرح كيفية بدء البرمجة بلغة بايثون، تصميم البرامج والألعاب البسيطة، إدارة البيانات، استخدام القوائم والدوال، التعامل مع الملفات، الوحدات والفئات. دورة مثالية للمبتدئين لاحتراف بيئة البرمجة الأقوى والأكثر طلباً.

Desarrollo Frontend desde Cero: Creando Tu Primer Sitio Web

Desarrollo Frontend desde Cero: Creando Tu Primer Sitio Web

Aprende a desarrollar tu primer sitio web desde cero con HTML y CSS en este curso de frontend.

Buy us a coffee

If you found this summary useful, consider buying us a coffee. It would help us a lot!

Let's Try!

Start Taking Better Notes Today with LunaNotes!