Gyakorlat – Általános nézetek implementálása az adatok szerkesztéséhez
Annak érdekében, hogy a felhasználók új kutyákat regisztrálhassanak egy menhelyen, a következőt fogjuk használni CreateView
.
A modell frissítése a get_absolute_url támogatásához
Kezdjük azzal, hogy frissítjük a modellt a támogatás get_absolute_url
érdekében.
A Visual Studio Code-n belül nyissa meg a dog_shelters/models.py fájlt.
Adja hozzá a következő kódot a függvény importálásához
reverse
beolvasott# TODO: Import reverse
sor alá.# TODO: Import reverse from django.urls import reverse
Adja hozzá az alábbi kódot az
Dog
osztályhoz azonnal a dog_detail elérési útNAK az URLconfból való beolvasásához beolvasott# TODO: Add get_absolute_url
sorhoz, és adja meg paraméterként az azonosítót.# TODO: Add get_absolute_url def get_absolute_url(self): return reverse('dog_detail', kwargs={"pk": self.pk})
Fontos
Ne feledje, hogy a Python a kapcsos zárójelek ({ }
) helyett fülekkel kezeli a házakat. Emiatt a get_absolute_url
megjegyzés lapszintjén #TODO
kell lennie. A kész projekt megtekintéséhez tekintse meg a megoldáskönyvtárban található fájlokat.
A DogCreateView létrehozása
Hozzuk létre DogCreateView
, hogy valaki regisztráljon egy kutyát.
A Visual Studio Code-n belül nyissa meg a dog_shelters/views.py fájlt.
A views.py végén adja hozzá a következő kódot a létrehozáshoz
DogCreateView
.class DogCreateView(generic.CreateView): model = models.Dog template_name = 'dog_form.html' fields = ['shelter', 'name', 'description']
A modellt úgy állítottuk be, hogy Dog
a sablon dog_form.html legyen, és a szerkeszteni kívánt mezők listáját.
Megjegyzés:
A mezők listázásának sorrendje az lesz, hogy azok megjelennek az űrlapon.
Az útvonal regisztrálása
A nézetünk létrehozásával regisztráljuk az útvonalat az URLconfban.
A Visual Studio Code-n belül nyissa meg a dog_shelters/urls.py fájlt.
Az olvasott
# TODO: Register create view
sor alatt adja hozzá az alábbi kódot az útvonal regisztrálásához.# TODO: Register create view path('dog/register', views.DogCreateView.as_view(), name='dog_register'),
A HTML-sablon létrehozása
Hozzuk létre a sablont az űrlap üzemeltetéséhez.
A Visual Studio Code-n belül hozzon létre egy új fájlt dog_shelters/sablonokban dog_form.html néven.
Adja hozzá a következő kódot a dog_form.html fájlhoz , hogy létrehozhassa az űrlapot futtató sablont.
{% 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 %}
Megjegyzés:
Egy jegyzetet adunk hozzá magunkhoz egy tár hozzáadásához, amelyet a következő gyakorlatban fogunk elvégezni.
Hivatkozás létrehozása a regisztrációs lapra
Hozzunk létre egy hivatkozást a menedékoldalunkon, amely jelenleg az alkalmazás kezdőlapja, a létrehozott regisztrációs lapra.
Nyissa meg a Visual Studio Code-ot dog_shelters/templates/shelter_list.html fájlban.
Az olvasási
{# TODO: Add link to registration page #}
sor alatt adja hozzá a következő kódot a hivatkozás létrehozásához.{# TODO: Add link to registration page #} <div> <a href="{% url 'dog_register' %}">Register a dog available for adoption</a> </div>
Az oldal tesztelése
Tekintsük meg az oldalt működés közben.
Az összes fájl mentéséhez válassza az Összes mentése lehetőséget>.
Nyissa meg a
http://localhost:8000
URL-címet a böngészőben.Válassza az Örökbefogadáshoz elérhető kutya regisztrálása lehetőséget.
Ekkor meg kell jelennie az űrlapnak.
Figyelje meg, hogyan válik az idegenkulcs-kapcsolatunk legördülő listává.
Válasszon egy menedéket, és adjon hozzá egy nevet és leírást egy kutyához.
Válassza a Mentés parancsot.
Ekkor a rendszer átirányítja a kutya részletes lapjára!
Létrehozott egy létrehozási űrlapot a Django használatával CreateView
.