Menu
CoddyTech

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.

challenge icon

Sfida

Facile
  • In new_event, passa un EventForm vuoto al template come form.
  • 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