Menu
CoddyTech

הורשה של תבניות

חלק מהיחידה יסודות Django במסלול ה-Django של Coddy. שיעור 17 מתוך 23.

home.html ו-drinks.html חוזרים כל אחד על אותו <head>, ובקרוב גם על סרגל ניווט. משנים את המסגרת, וצריך לערוך כל קובץ. במקום זאת, תבנית אחת מספקת את המסגרת, והדפים ממלאים אותה.

המסגרת מסמנת את החלק שהדף ממלא באמצעות תגית {% block %} ושם. library/base.html של ספרייה:

<body>
    <nav>...</nav>
    <article>{% block body %}{% endblock %}</article>
</body>

דף מתחיל ב-{% extends %}, ואז ממלא את הבלוק:

{% extends "library/base.html" %}

{% block body %}
    <p>We are open until 20:00.</p>
{% endblock %}
{% extends %} חייבת להיות התגית הראשונה. בדף שיורש מדף אחר, כל מה שמחוץ לבלוק נמחק: כותרת ששכחת לעטוף נעלמת.
challenge icon

אתגר

בינוני
  • ב־base.html, הוסיפו בתוך <main> בלוק ריק בשם content.
  • גרמו ל־home.html ול־drinks.html לרשת את "menu/base.html", והציבו את ה־HTML שלהן בתוך הבלוק הזה.

לחצו על Run: בשני הדפים מוצג סרגל הניווט מתוך base.html.

נסו בעצמכם

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Corner Café</title>
</head>
<body>
    <nav>
        <a href="{% url 'menu:home' %}">Home</a>
        <a href="{% url 'menu:drinks' %}">Drinks</a>
        <a href="{% url 'menu:about' %}">About</a>
    </nav>
    <main>
        <!-- each page's content goes here -->
    </main>
</body>
</html>

כל השיעורים ביחידה יסודות Django

תרגלו בעצמכם: Django אונליין