Ćwiczenie — implementowanie widoków ogólnych w celu wyświetlania danych

Ukończone

Chcemy utworzyć nową stronę szczegółów dla psów. Użyjemy widoku DetailView ogólnego, aby usprawnić ilość kodu, który musimy utworzyć.

Ważne

W tym ćwiczeniu przyjęto założenie, że kroki konfiguracji zostały wykonane wcześniej w tym module.

Tworzenie widoku DogDetail

Zaczynamy od utworzenia klasy widoku szczegółów.

  1. W programie Visual Studio Code otwórz dog_shelters /views.py.

  2. Poniżej wiersza, który odczytuje # TODO: Import generic views, dodaj następujący kod, aby zaimportować moduł widoków ogólnych.

    # TODO: Import generic views
    from django.views import generic
    
  3. Dodaj następujący kod w dolnej części views.py , aby utworzyć ogólny widok dla DogDetail i ustawić model, szablon i obiekt kontekstu.

    class DogDetailView(generic.DetailView):
        model = models.Dog
        template_name = 'dog_detail.html'
        context_object_name = 'dog'
    

Rejestrowanie widoku szczegółów

Po utworzeniu widoku możemy zarejestrować ścieżkę.

  1. Otwórz dog_shelters/urls.py.

  2. Poniżej wiersza, który odczytuje # TODO: Register detail view, dodaj następujący kod, aby zarejestrować ścieżkę dla naszego DogDetailViewpliku .

    # TODO: Register detail view
    path('dog/<int:pk>', views.DogDetailView.as_view(), name='dog_detail'),
    

    Ważne

    Zapamiętaj końcowy przecinek na końcu wiersza.

Tworzenie szablonu HTML

Teraz utworzysz szablon HTML, aby wyświetlić szczegóły psa. Nazwa obiektu będzie dog ustawiana podczas tworzenia formularza.

  1. Wewnątrz programu Visual Studio Code utwórz nowy plik wewnątrz dog_shelters/szablonów o nazwie dog_detail.html.

  2. Dodaj następujący kod, aby dog_detail.html , aby utworzyć szablon w celu wyświetlenia szczegółów psa.

    {% extends 'base.html' %}
    
    {% block title %}
    {{ dog.name }}
    {% endblock %}
    
    {% block content %}
    <h2>{{ dog.name }}</h2>
    <div>About {{ dog.name }} - {{ dog.description }}</div>
    {% endblock %}
    

Po zarejestrowaniu ścieżki i utworzeniu szablonu możemy zaktualizować szablon szczegółów schroniska w celu uwzględnienia linków do naszej strony szczegółów psa.

  1. Otwórz dog_shelters/templates/shelter_detail.html.

  2. Poniżej wiersza, który odczytuje {# TODO: Add link to dogs #}, dodaj następujący kod, aby utworzyć link dla każdego psa do widoku szczegółów.

    {# TODO: Add link to dogs #}
    <a href="{% url 'dog_detail' dog.id %}">
        {{dog.name}}
    </a>
    
    

Testowanie strony

Po utworzeniu wszystkich elementów zobaczymy naszą stronę w akcji.

  1. Zapisz wszystkie pliki, wybierając pozycję Plik>Zapisz wszystko.

  2. W przeglądarce przejdź do adresu http://localhost:8000.

  3. Z listy schronisk wybierz pozycję Contoso.

  4. Z listy psów wybierz pozycję Roscoe.

    Zostanie wyświetlona strona szczegółów.

    Zrzut ekranu przedstawiający stronę szczegółów roscoe.

Utworzyliśmy widok przy użyciu ogólnego systemu widoków w Django!