Mendeklarasikan ModelForm dan Meta.fields
Hubungkan formulir ke model hanya dalam beberapa baris
Mendeklarasikan ModelForm dan Meta.fields adalah pelajaran Django Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Django Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Django Academy mencakup 4 pelajaran total.
Alasan ModelForm Dibuat
Anda sudah memiliki model yang menjelaskan data Anda. ModelForm membuat formulir langsung dari model tersebut, sehingga Anda tidak perlu menulis bidang yang sama dua kali. 🎯
Mengimpor ModelForm
ModelForms berada di tempat yang sama dengan formulir biasa. Anda membuat subkelas forms.ModelForm, bukan forms.Form, untuk mendapatkan versi yang memahami model.
from django import forms
from .models import PostKelas Meta
ModelForm memerlukan kelas Meta di dalamnya. Meta adalah tempat Anda memberi tahu formulir model yang menjadi dasarnya dan bidang yang harus disertakan.
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ["title", "body"]Menunjuk ke Model
Atribut model menyebutkan kelas yang dicerminkan oleh formulir Anda. Django membaca bidang model tersebut untuk menentukan masukan formulir yang perlu dibuat.
class Meta:
model = PostMencantumkan Bidang Secara Eksplisit
Daftar fields menentukan dengan tepat bidang model mana yang menjadi masukan formulir. Menyebutkannya membuat formulir tetap terarah dan aman dari kejutan.
fields = ["title", "body", "published"]Pintasan: fields = all
Mengatur fields ke string "__all__" akan menyertakan semua bidang model. Ini praktis untuk demonstrasi, tetapi berisiko karena bidang model baru akan muncul secara otomatis.
class Meta:
model = Post
fields = "__all__"Sebagai Alternatif, Kecualikan
Anda dapat membalik pendekatan ini dengan exclude untuk mempertahankan semua bidang kecuali beberapa bidang tertentu. Jika memungkinkan, pilih daftar fields yang eksplisit agar lebih jelas.
class Meta:
model = Post
exclude = ["author"]Widget yang Dibuat Otomatis
Django secara otomatis memilih widget yang sesuai untuk setiap bidang. CharField menjadi kotak teks dan BooleanField menjadi kotak centang tanpa pekerjaan tambahan.
Validasi Sudah Tersedia
Aturan model Anda juga ikut diterapkan. Bidang yang ditandai wajib atau memiliki panjang maksimum akan membawa validasi yang sama ke formulir secara otomatis.
Menggunakannya dalam Tampilan
Di dalam tampilan, Anda membuat formulir dengan cara yang sama seperti formulir lainnya. PostForm() yang kosong akan menampilkan masukan kosong yang siap diisi pengguna.
def create(request):
form = PostForm()
return render(request, "create.html", {"form": form})Menghubungkan ke Instans
Berikan objek yang sudah ada dengan instance, maka formulir akan mengisi nilai-nilainya terlebih dahulu. ModelForm yang sama kini dapat digunakan untuk membuat dan mengedit.
form = PostForm(instance=post)Pemeriksaan Singkat
Di mana Anda memberi tahu ModelForm model dan bidang yang harus digunakan?
Ringkasan: Dasar-Dasar ModelForm
Kerja bagus! ModelForm membuat formulir dari model menggunakan Meta di dalamnya, yang berisi model dan fields. Anda tidak perlu mengulang definisi dan mendapatkan validasi secara otomatis. ✨
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mendeklarasikan ModelForm dan Meta.fields” gratis?
Ya — teks lengkap “Mendeklarasikan ModelForm dan Meta.fields” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Django Academy, upgrade ke CoddyKit PRO. Kursus Django Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mendeklarasikan ModelForm dan Meta.fields”?
Hubungkan formulir ke model hanya dalam beberapa baris Kamu berlatih Django Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Django Academy?
Tidak diperlukan pengalaman sebelumnya. Django Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Mendeklarasikan ModelForm dan Meta.fields” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Django Academy ini?
Ya. Setiap pelajaran Django Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mendeklarasikan ModelForm dan Meta.fields
- form.save() dan commit=False
- Validasi Kustom dengan metode clean
- Widget, Label, dan Teks Bantuan