Wyświetlanie formularza
Część sekcji Formularze ścieżki Django w Coddy. Lekcja 6 z 20.
Strona pod adresem /events/new/ ręcznie tworzy każdą etykietę i pole, a EventForm ponownie wymienia te same pola. Formularz może wygenerować się sam: przekaż go do szablonu i wpisz {{ form }} wewnątrz znacznika <form>. Strona kontaktowa:
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Send</button>
</form>{{ form }} tworzy etykietę i pole dla każdego pola formularza, w kolejności zadeklarowanej w klasie. Każde pole otrzymuje atrybut name i id, taki jak id_email, więc jego etykieta wskazuje na nie. Znacznik formularza, token i przycisk pozostają po twojej stronie.
Formularz, w którym niczego jeszcze nie wpisano, to klasa wywołana bez danych: ContactForm(). Django oznacza też wymagane pola atrybutem required, dzięki czemu przeglądarka nie pozwala wysłać pustego pola.
Wyzwanie
Łatwy- W
new_eventprzekaż pustyEventFormdo szablonu jakoform. - W
new_event.htmlzastąp etykiety i pola formularza jego automatycznym wygenerowaniem. Zachowaj znacznik formularza, token, przycisk i komunikat o błędzie.
Naciśnij Run i otwórz /events/new/: Django wygeneruje pola.
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
2Formularze Django
Formularz DjangoWyświetlanie formularzaPoćwicz samodzielnie: Edytor online Django