Menggambar Formulir
Termasuk bagian Formulir dalam perjalanan Django di Coddy. Pelajaran 6 dari 20.
Halaman di /events/new/ menulis setiap label dan input secara manual, sementara EventForm mencantumkan kolom yang sama lagi. Formulir bisa menggambar dirinya sendiri: berikan satu ke template, lalu tulis {{ form }} di dalam tag <form>. Halaman kontak:
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Send</button>
</form>{{ form }} menulis label dan input untuk setiap kolom, sesuai urutan yang ditetapkan class. Setiap input mendapatkan name kolom dan id seperti id_email, sehingga labelnya merujuk ke input tersebut. Tag formulir, token, dan tombol tetap kamu yang buat.
Formulir yang belum diisi apa pun adalah class yang dipanggil tanpa data: ContactForm(). Django juga menandai input wajib dengan required, sehingga browser mencegah pengiriman jika ada kolom kosong. Kotak tanggal kini berupa teks biasa, karena Django menggambar DateField sebagai teks. Masukkan tanggal seperti 2031-12-05.
Tantangan
MudahBiarkan EventForm membuat field-nya sendiri.
- Di
new_event, kirimEventFormkosong ke template dengan namaform. - Di
new_event.html, ganti tiga label dan input dengan{{ form }}, yang akan menuliskannya untukmu. Pertahankan tag form, token, tombol, dan pesan error.
Tambahkan acara dengan tanggal 2031-12-05: Django membuat setiap label, lalu kamu diarahkan ke halaman acara.
Coba sendiri
{% 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 %}
Semua pelajaran di Formulir
2Formulir Django
Sebuah Formulir DjangoMenggambar FormulirLatihan sendiri: Playground Django