Ćwiczenie — implementowanie widoków ogólnych w celu edytowania danych
Aby umożliwić użytkownikom rejestrowanie nowych psów w schronisku, użyjemy polecenia CreateView
.
Aktualizowanie modelu w celu obsługi get_absolute_url
Zacznijmy od zaktualizowania modelu w celu obsługi get_absolute_url
usługi .
W programie Visual Studio Code otwórz dog_shelters /models.py.
Dodaj następujący kod poniżej wiersza, który odczytuje
# TODO: Import reverse
w celu zaimportowaniareverse
funkcji.# TODO: Import reverse from django.urls import reverse
Dodaj następujący kod do
Dog
klasy natychmiast wiersz, który odczytuje# TODO: Add get_absolute_url
, aby odczytać ścieżkę dog_detail z pliku URLconf i przekazać identyfikator jako parametr.# TODO: Add get_absolute_url def get_absolute_url(self): return reverse('dog_detail', kwargs={"pk": self.pk})
Ważne
Pamiętaj, że język Python zarządza obudowami za pomocą kart, a nie nawiasów klamrowych ({ }
). Ze względu na ten fakt, get_absolute_url
musi na tym samym poziomie karty co #TODO
komentarz. Aby wyświetlić ukończony projekt, możesz odwołać się do plików w katalogu rozwiązania .
Tworzenie elementu DogCreateView
Utwórzmy DogCreateView
, aby umożliwić komuś zarejestrowanie psa.
W programie Visual Studio Code otwórz dog_shelters /views.py.
Na końcu views.py dodaj następujący kod, aby utworzyć
DogCreateView
plik .class DogCreateView(generic.CreateView): model = models.Dog template_name = 'dog_form.html' fields = ['shelter', 'name', 'description']
Ustawiliśmy model na Dog
wartość , aby był dog_form.html szablonem, a lista pól, które chcemy edytować.
Uwaga
Kolejność wyświetlania pól będzie kolejnością wyświetlania ich w formularzu.
Rejestrowanie trasy
Po utworzeniu widoku zarejestrujmy trasę w naszym adresie URLconf.
W programie Visual Studio Code otwórz dog_shelters /urls.py.
Poniżej wiersza, który odczytuje
# TODO: Register create view
, dodaj następujący kod, aby zarejestrować trasę.# TODO: Register create view path('dog/register', views.DogCreateView.as_view(), name='dog_register'),
Tworzenie szablonu HTML
Utwórzmy szablon do hostowania formularza.
Wewnątrz programu Visual Studio Code utwórz nowy plik wewnątrz dog_shelters/szablonów o nazwie dog_form.html.
Dodaj następujący kod, aby dog_form.html utworzyć szablon do hostowania formularza.
{% extends 'base.html' %} {# TODO: Register crispy_forms_tags #} {% block title %} Register dog at shelter {% endblock %} {% block content %} <h2>Register dog at shelter</h2> <form method="POST"> {% csrf_token %} {{ form.as_p }} <button type="submit" class="btn btn-primary">Save</button> </form> {% endblock %}
Uwaga
Dodajemy dla siebie notatkę, aby dodać bibliotekę, którą wykonamy w następnym ćwiczeniu.
Tworzenie linku do strony rejestracji
Utwórzmy link na naszej stronie listy schronisk, która jest obecnie stroną główną naszej aplikacji, do utworzonej strony rejestracji.
W programie Visual Studio Code otwórz dog_shelters /templates/shelter_list.html.
Poniżej wiersza, który odczytuje
{# TODO: Add link to registration page #}
, dodaj następujący kod, aby utworzyć link.{# TODO: Add link to registration page #} <div> <a href="{% url 'dog_register' %}">Register a dog available for adoption</a> </div>
Testowanie strony
Zobaczmy naszą stronę w akcji.
Zapisz wszystkie pliki, wybierając pozycję Plik>Zapisz wszystko.
W przeglądarce przejdź do adresu
http://localhost:8000
.Wybierz pozycję Zarejestruj psa dostępnego do wdrożenia.
Powinien zostać wyświetlony formularz.
Zwróć uwagę, że nasza relacja klucza obcego staje się listą rozwijaną.
Wybierz schronienie i dodaj nazwę i opis psa.
Wybierz pozycję Zapisz.
Teraz nastąpi przekierowanie do strony szczegółów twojego psa!
Formularz tworzenia został utworzony przy użyciu narzędzia CreateView
Django.