Ein Formular erstellen
Teil des Abschnitts Formulare der Django-Journey von Coddy. Lektion 6 von 20.
Die Seite unter /events/new/ schreibt jedes Beschriftungsfeld und jedes Eingabefeld von Hand, und EventForm listet dieselben Felder noch einmal auf. Ein Formular kann sich selbst erstellen: Übergib es an das Template und schreibe {{ form }} innerhalb des <form>-Tags. Eine Kontaktseite:
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Send</button>
</form>{{ form }} erstellt für jedes Feld eine Beschriftung und ein Eingabefeld, und zwar in der Reihenfolge, in der die Klasse sie deklariert. Jedes Eingabefeld erhält den name des Feldes und eine id wie id_email, sodass die Beschriftung darauf verweist. Das Formular-Tag, das Token und der Button bleiben dir überlassen.
Ein Formular, in das noch nichts eingegeben wurde, ist die Klasse, die ohne Daten aufgerufen wird: ContactForm(). Django kennzeichnet außerdem erforderliche Eingabefelder mit required, sodass der Browser ein leeres Feld vor dem Absenden blockiert.
Aufgabe
Einfach- Übergib in
new_eventeine leereEventFormunter dem Namenforman das Template. - Ersetze in
new_event.htmldie Beschriftungen und Eingabefelder durch die Formularausgabe. Behalte das Formular-Tag, das Token, die Schaltfläche und die Fehlermeldung bei.
Klicke auf „Ausführen“ und öffne /events/new/: Django rendert die Felder.
Probier es selbst
{% 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 %}
Alle Lektionen in Formulare
2Django-Formulare
Ein Django-FormularEin Formular erstellenÜbe selbstständig: Django-Playground