Menu
CoddyTech

引入模板

本课属于 Coddy Django 学习旅程的“Django 基础”单元。第 19 课,共 23 课。

饮品卡片(名称、描述、价格)既要显示在首页的今日特选中,也要显示在每款饮品对应的 /drinks/ 页面上。它已准备好,位于 menu/templates/menu/drink_card.html。不用把它复制到两个模板中,直接包含它即可:

{% include "shop/price_tag.html" %}

被包含的模板会粘贴到标签所在的位置,并且可以访问相同的变量。如果价格标签读取 {{ product.price }},那么它在 {% for product in products %} 中也能正常工作。如果项目使用了其他名称,with 会传入这段模板所需的名称:

{% include "shop/price_tag.html" with product=deal %}

{% extends %} 共享框架,{% include %} 共享片段。只需修改一次片段,每个页面都会随之更新。

challenge icon

挑战

简单

在两个页面上显示来自 drink_card.html 的饮品卡片。

  1. 在 home.html 中,将 <p>Today's special: ...</p> 替换为 <p>Today's special:</p>,然后添加适用于 special 的饮品卡片。
  2. 在 drinks.html 中,在每个 <li class="drink"> 内,将链接和价格替换为饮品卡片。保留“售罄”标记。

点击“运行”:主页和 /drinks/ 会显示相同的卡片。

亲手试试

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

{% block content %}
    <h1>Welcome to Corner Café</h1>
    <p>Fresh coffee and cake every day.</p>
    <p>Today's special: {{ special.name }}</p>
    <a href="{% url 'menu:about' %}">About us</a>
{% endblock %}

Django 基础中的所有课

自己练习: Django 在线编辑器