Cvičení – implementace obecných zobrazení pro zobrazení dat
Chceme vytvořit novou stránku podrobností pro psy. Pomocí obecného zobrazení DetailView
zjednodušíme množství kódu, který potřebujeme vytvořit.
Důležité
V tomto cvičení se předpokládá, že jste dokončili kroky nastavení dříve v tomto modulu.
Vytvoření zobrazení DogDetail
Začneme vytvořením třídy zobrazení podrobností.
V editoru Visual Studio Code otevřete dog_shelters/views.py.
Pod řádek, který čte
# TODO: Import generic views
, přidejte následující kód pro import obecného zobrazení modulu.# TODO: Import generic views from django.views import generic
Do dolní části views.py přidejte následující kód, který vytvoří obecné zobrazení pro
DogDetail
model, šablonu a kontextový objekt.class DogDetailView(generic.DetailView): model = models.Dog template_name = 'dog_detail.html' context_object_name = 'dog'
Registrace zobrazení podrobností
Po vytvoření zobrazení můžeme cestu zaregistrovat.
Otevřete dog_shelters/urls.py.
Pod řádek, který čte
# TODO: Register detail view
, přidejte následující kód pro registraci cesty pro našiDogDetailView
.# TODO: Register detail view path('dog/<int:pk>', views.DogDetailView.as_view(), name='dog_detail'),
Důležité
Zapamatujte si koncovou čárku na konci řádku.
Vytvoření šablony HTML
Teď vytvoříte šablonu HTML, která zobrazí podrobnosti psa. Název objektu bude dog
nastavený při vytváření formuláře.
V editoru Visual Studio Code vytvořte nový soubor uvnitř dog_shelters/templates s názvem dog_detail.html.
Do souboru dog_detail.html přidejte následující kód, který vytvoří šablonu pro zobrazení podrobností pro psa.
{% extends 'base.html' %} {% block title %} {{ dog.name }} {% endblock %} {% block content %} <h2>{{ dog.name }}</h2> <div>About {{ dog.name }} - {{ dog.description }}</div> {% endblock %}
Aktualizujte stránku podrobností útulku tak, aby obsahovala náš odkaz.
Po vytvoření cesty a vytvořené šablony můžeme aktualizovat šablonu podrobností útulku tak, aby obsahovala odkazy na stránku s podrobnostmi o našem psím souboru.
Otevřete dog_shelters/templates/shelter_detail.html.
Pod řádek, který čte
{# TODO: Add link to dogs #}
, přidejte následující kód pro vytvoření odkazu pro každého psa do podrobného zobrazení.{# TODO: Add link to dogs #} <a href="{% url 'dog_detail' dog.id %}"> {{dog.name}} </a>
Otestování stránky
S veškerým vytvořeným obsahem se podíváme na naši stránku v akci.
Výběrem možnosti Uložit>vše uložte všechny soubory.
V prohlížeči přejděte na
http://localhost:8000
.V seznamu útulek vyberte Contoso.
Ze seznamu psů vyberte Roscoe.
Zobrazí se stránka s podrobnostmi.
Vytvořili jsme zobrazení pomocí obecného systému zobrazení v Django!