Cvičení – implementace obecných zobrazení pro zobrazení dat

Dokončeno

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í.

  1. V editoru Visual Studio Code otevřete dog_shelters/views.py.

  2. 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
    
  3. 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.

  1. Otevřete dog_shelters/urls.py.

  2. Pod řádek, který čte # TODO: Register detail view, přidejte následující kód pro registraci cesty pro naši DogDetailView.

    # 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.

  1. V editoru Visual Studio Code vytvořte nový soubor uvnitř dog_shelters/templates s názvem dog_detail.html.

  2. 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 %}
    

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.

  1. Otevřete dog_shelters/templates/shelter_detail.html.

  2. 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.

  1. Výběrem možnosti Uložit>vše uložte všechny soubory.

  2. V prohlížeči přejděte na http://localhost:8000.

  3. V seznamu útulek vyberte Contoso.

  4. Ze seznamu psů vyberte Roscoe.

    Zobrazí se stránka s podrobnostmi.

    Screenshot of the details page for Roscoe.

Vytvořili jsme zobrazení pomocí obecného systému zobrazení v Django!