Menu
CoddyTech

Wyświetlanie formularza

Część sekcji Formularze ścieżki Django w Coddy. Lekcja 6 z 20.

Strona pod adresem /events/new/ ręcznie zapisuje każdą etykietę i pole, a EventForm ponownie wymienia te same pola. Formularz może wygenerować się sam: przekaż go do szablonu i zapisz {{ form }} wewnątrz znacznika <form>. Strona kontaktowa:

<form method="post">
    {% csrf_token %}
    {{ form }}
    <button type="submit">Send</button>
</form>

{{ form }} zapisuje etykietę i pole dla każdego pola formularza, w kolejności, w jakiej deklaruje je klasa. Każde pole otrzymuje name i id w formacie id_email, dzięki czemu etykieta wskazuje na nie. Znacznik formularza, token i przycisk pozostają w twoich rękach.

Formularz, w którym nie wpisano jeszcze żadnych danych, to klasa wywołana bez danych: ContactForm(). Django oznacza też wymagane pola atrybutem required, więc przeglądarka nie pozwoli wysłać formularza z pustym polem. Pole daty jest teraz zwykłym polem tekstowym, ponieważ Django wyświetla DateField jako tekst. Wpisuj daty w formacie 2031-12-05.

challenge icon

Wyzwanie

Łatwy

Pozwól, aby EventForm wygenerował własne pola.

  1. W new_event przekaż do szablonu pusty EventForm jako form.
  2. W new_event.html zastąp trzy etykiety i pola wejściowe przez {{ form }}, które wygeneruje je za Ciebie. Zachowaj znacznik formularza, token, przycisk i komunikat o błędzie.

Dodaj wydarzenie z datą 2031-12-05: Django wygeneruje każdą etykietę, a Ty trafisz na stronę wydarzenia.

Spróbuj swoich sił

{% extends "events/base.html" %}

{% block title %}Add an event{% endblock %}

{% block content %}
<h1>Add an event</h1>
{% if error %}
<p class="error">{{ error }}</p>
{% endif %}
<form method="post">
    {% csrf_token %}
    <label for="title">Title</label>
    <input id="title" name="title">
    <label for="date">Date</label>
    <input id="date" name="date" type="date">
    <label for="place">Place</label>
    <input id="place" name="place">
    <button type="submit">Add event</button>
</form>
{% endblock %}

Wszystkie lekcje w sekcji Formularze

Poćwicz samodzielnie: Edytor online Django