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

السؤال

نشر

لدي مشروع جانغو Django. وأريد في أن تحتوي جميع ملفات القوالب في كل التطبيقات Apps المختلفة على نفس Header و Footer. هنا شكل الملفات التي لدي:

myproject
   |_ base
       |_ templates|
           |_ header.html
           |_ footer.html
    app1
       |_ templates
           |_ home.html

كيف أقوم بإستدعاء الملفين header.html و footer.html من داخل الملف home.html في جانغو Django؟

Recommended Posts

  • 1
نشر (معدل)

من الأفضل عدم إستدعاء الهيدر والفوتر فرديًا بهذه الطريقة أو عمل include

الأفضل هو إستعمال extends في التعامل مع القوالب ، أولًا ستقوم بعمل ملف إسمه

base.html

داخل هذا الملف ستقوم بوضع الهيدر والفوتر والجزئية المتغيرة للصفحة أو الـ content بمعنى أصح.

{% include "templates/header.html" %}

{% block content %}
{% endblock %}

{% include "templates/footer.html" %}

الآن يمكنك في صفحة الـ home ببساطة وضع الكود التالي وبدء إنشاء محتويات الصفحة بدون الحاجة لعمل include كل مرة للهيدر والفوتر.

{% extends 'base.html' %}

{% block content %}
<p>محتوى الصفحة هنا</p>
{% endblock %}

تستخدم هذه الطريقة لجعل التحكم أكثر مرونة في المحتوى ومنفصل ومُقسم بشكل أفضل ، مثلًا لو احتجت لإضافة شيء أسفل الهيدر ستحتاج لتغييرها في كل الصفحات إذا إستعملت include لكل الصفحات ، لكن بهذه الطريقة يكفيك التعديل على الـ base.html.

تم التعديل في بواسطة Ahmed.Sayed

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...