Cvičení – implementace obecných zobrazení pro úpravy dat
Abychom uživatelům umožnili registraci nových psů v útulku, použijeme CreateView
.
Aktualizace modelu tak, aby podporovala get_absolute_url
Začněme aktualizací modelu tak, aby podporoval get_absolute_url
.
V editoru Visual Studio Code otevřete soubor dog_shelters/models.py.
Pod řádek, který načte, přidejte následující kód, který funkci
reverse
naimportuje# TODO: Import reverse
.# TODO: Import reverse from django.urls import reverse
Přidejte následující kód do
Dog
třídy okamžitě řádek, který čte# TODO: Add get_absolute_url
, aby přečetl cestu dog_detail z URLconf a předal ID jako parametr.# TODO: Add get_absolute_url def get_absolute_url(self): return reverse('dog_detail', kwargs={"pk": self.pk})
Důležité
Mějte na paměti, že Python spravuje skříně s kartami místo složených závorek ({ }
). Z tohoto důvodu get_absolute_url
musí být na stejné úrovni tabulátoru #TODO
jako komentář. Můžete se podívat na soubory v adresáři řešení a zobrazit dokončený projekt.
Vytvoření Objektu DogCreateView
Pojďme vytvořit DogCreateView
, abychom někomu umožnili zaregistrovat psa.
V editoru Visual Studio Code otevřete dog_shelters/views.py.
Na konec views.py přidejte následující kód, který chcete vytvořit
DogCreateView
.class DogCreateView(generic.CreateView): model = models.Dog template_name = 'dog_form.html' fields = ['shelter', 'name', 'description']
Model jsme nastavili tak, aby Dog
byla šablona dog_form.html a seznam polí, která chceme upravit.
Poznámka:
Pořadí, ve kterém zobrazíte seznam polí, bude pořadí, ve kterém se budou zobrazovat ve formuláři.
Registrace trasy
S naším zobrazením, které jsme vytvořili, zaregistrujeme trasu v našem URLconf.
V editoru Visual Studio Code otevřete dog_shelters/urls.py.
Pod řádek, který přečte
# TODO: Register create view
, přidejte následující kód pro registraci trasy.# TODO: Register create view path('dog/register', views.DogCreateView.as_view(), name='dog_register'),
Vytvoření šablony HTML
Pojďme vytvořit šablonu pro hostování našeho formuláře.
Uvnitř editoru Visual Studio Code vytvořte nový soubor uvnitř dog_shelters/templates s názvem dog_form.html.
Do souboru dog_form.html přidejte následující kód, který vytvoří šablonu pro hostování našeho formuláře.
{% 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 %}
Poznámka:
Přidáváme poznámku pro sebe, abychom přidali knihovnu, kterou provedeme v dalším cvičení.
Vytvoření odkazu na registrační stránku
Pojďme vytvořit odkaz na naší stránce se seznamem přístřešků, která je aktuálně domovskou stránkou naší aplikace, na stránku registru, kterou jsme vytvořili.
V editoru Visual Studio Code otevřete dog_shelters /templates/shelter_list.html.
Pod řádek, který přečte
{# TODO: Add link to registration page #}
, přidejte následující kód pro vytvoření odkazu.{# TODO: Add link to registration page #} <div> <a href="{% url 'dog_register' %}">Register a dog available for adoption</a> </div>
Testování stránky
Podívejme se na naši stránku v akci.
Uložte všechny soubory výběrem možnosti Uložit>vše.
V prohlížeči přejděte na
http://localhost:8000
.Vyberte Zaregistrovat psa, který je k dispozici pro přijetí.
Teď by se měl zobrazit formulář.
Všimněte si, jak se vztah cizího klíče stane rozevíracím seznamem.
Zvolte útulek a přidejte jméno a popis psa.
Zvolte Uložit.
Teď jste přesměrováni na stránku podrobností vašeho psa!
Vytvořili jste formulář pro vytvoření pomocí CreateView
Django.