引入模板
本课属于 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 %} 共享片段。只需修改一次片段,每个页面都会随之更新。
挑战
简单在两个页面上显示来自 drink_card.html 的饮品卡片。
- 在
home.html中,将<p>Today's special: ...</p>替换为<p>Today's special:</p>,然后添加适用于special的饮品卡片。 - 在
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 在线编辑器