Gyakorlat – Általános nézetek implementálása az adatok szerkesztéséhez

Befejeződött

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.

  1. A Visual Studio Code-n belül nyissa meg a dog_shelters/models.py fájlt.

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

  1. A Visual Studio Code-n belül nyissa meg a dog_shelters/views.py fájlt.

  2. A views.py végén adja hozzá a következő kódot a létrehozáshozDogCreateView.

    class DogCreateView(generic.CreateView):
        model = models.Dog
        template_name = 'dog_form.html'
        fields = ['shelter', 'name', 'description']
    

A modellt úgy állítottuk be, hogy Doga 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.

  1. A Visual Studio Code-n belül nyissa meg a dog_shelters/urls.py fájlt.

  2. Az olvasott # TODO: Register create viewsor 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.

  1. A Visual Studio Code-n belül hozzon létre egy új fájlt dog_shelters/sablonokban dog_form.html néven.

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

Hozzunk létre egy hivatkozást a menedékoldalunkon, amely jelenleg az alkalmazás kezdőlapja, a létrehozott regisztrációs lapra.

  1. Nyissa meg a Visual Studio Code-ot dog_shelters/templates/shelter_list.html fájlban.

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

  1. Az összes fájl mentéséhez válassza az Összes mentése lehetőséget>.

  2. Nyissa meg a http://localhost:8000 URL-címet a böngészőben.

  3. Válassza az Örökbefogadáshoz elérhető kutya regisztrálása lehetőséget.

    Ekkor meg kell jelennie az űrlapnak.

    Screenshot of the register dog page, with the drop-down list for Shelter highlighted.

    Figyelje meg, hogyan válik az idegenkulcs-kapcsolatunk legördülő listává.

  4. Válasszon egy menedéket, és adjon hozzá egy nevet és leírást egy kutyához.

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