Creare un modulo
Fa parte della sezione Form del percorso Django di Coddy. Lezione 6 di 20.
La pagina /events/new/ scrive a mano ogni etichetta e campo di input, e EventForm elenca di nuovo gli stessi campi. Un modulo può generarsi da solo: passane uno al template e scrivi {{ form }} all’interno del tag <form>. Una pagina di contatto:
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Send</button>
</form>{{ form }} scrive un’etichetta e un campo di input per ogni campo, nell’ordine in cui la classe li dichiara. Ogni campo di input riceve il name del campo e un id come id_email, così la sua etichetta fa riferimento a esso. Il tag del modulo, il token e il pulsante restano a te.
Un modulo in cui non è ancora stato inserito nulla è la classe chiamata senza dati: ContactForm(). Django contrassegna anche i campi di input obbligatori con required, così il browser blocca l’invio se un campo è vuoto.
Sfida
Facile- In
new_event, passa unEventFormvuoto al template comeform. - In
new_event.html, sostituisci le etichette e i campi di input con il modulo stesso. Mantieni il tag form, il token, il pulsante e il messaggio di errore.
Premi Run e apri /events/new/: Django disegna i campi.
Provalo tu
{% 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 %}
Tutte le lezioni di Form
Esercitati da solo: Playground Django