Menu
CoddyTech

Incluindo um Template

Parte da seção Fundamentos do Django do Journey de Django da Coddy. Lição 19 de 23.

Um cartão de bebida (nome, descrição, preço) aparece na página inicial para o especial de hoje e em /drinks/ para cada bebida. Ele está pronto em menu/templates/menu/drink_card.html. Em vez de copiá-lo para dois modelos, inclua-o:

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

O modelo incluído é inserido onde está a tag e tem acesso às mesmas variáveis. Se a etiqueta de preço usar {{ product.price }}, ela funciona dentro de {% for product in products %}. Quando o item tiver outro nome, with passa o nome que o trecho espera:

{% include "shop/price_tag.html" with product=deal %}
{% extends %} compartilha uma estrutura; {% include %} compartilha um trecho. Altere o trecho uma vez e todas as páginas acompanharão a mudança.
challenge icon

Desafio

Fácil
  • Na página inicial, substitua <p>Today's special: ...</p> por <p>Today's special:</p> seguido pelo cartão da bebida special.
  • Em /drinks/, dentro de cada <li class="drink">, substitua o link e o preço pelo cartão da bebida. Mantenha a indicação de esgotado.

Pressione Executar: as duas páginas exibem os mesmos cartões.

Experimente você mesmo

{% 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 %}

Todas as lições de Fundamentos do Django

Pratique por conta própria: Playground de Django