Mengisytiharkan ModelForm dan Meta.fields
Pautkan borang kepada model dalam beberapa baris.
Mengisytiharkan ModelForm dan Meta.fields ialah pelajaran Django Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Django Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Django Academy merangkumi sejumlah 4 pelajaran.
Mengapa ModelForm Wujud
Anda sudah mempunyai model yang menerangkan data anda. ModelForm membina borang terus daripada model itu, jadi anda tidak perlu mengulang medan yang sama dua kali. 🎯
Mengimport ModelForm
ModelForms berada di tempat yang sama dengan borang biasa. Anda mencipta subkelas forms.ModelForm, bukannya forms.Form, untuk mendapatkan versi yang memahami model.
from django import forms
from .models import PostKelas Meta
ModelForm memerlukan kelas Meta dalaman. Meta ialah tempat anda memberitahu borang model yang digunakan untuk membinanya serta medan yang perlu disertakan.
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ["title", "body"]Menunjuk kepada Model
Atribut model menamakan kelas yang dicerminkan oleh borang anda. Django membaca medan model itu untuk menentukan input borang yang perlu dijana secara automatik.
class Meta:
model = PostMenyenaraikan Medan Secara Jelas
Senarai fields mengawal dengan tepat medan model yang menjadi input borang. Menamakannya menjadikan borang lebih jelas dan selamat daripada kejutan.
fields = ["title", "body", "published"]Pintasan: fields = all
Menetapkan fields kepada rentetan "__all__" menyertakan setiap medan model. Ia berguna dalam demonstrasi tetapi berisiko kerana medan model baharu akan muncul secara automatik.
class Meta:
model = Post
fields = "__all__"Mengecualikan Sebaliknya
Anda boleh menukar pendekatan dengan exclude untuk mengekalkan semua medan kecuali beberapa medan. Jika boleh, utamakan senarai fields yang jelas demi kefahaman.
class Meta:
model = Post
exclude = ["author"]Widget Dijana Secara Automatik
Django memilih widget yang munasabah untuk setiap medan secara automatik. CharField menjadi kotak teks dan BooleanField menjadi kotak pilihan tanpa kerja tambahan.
Pengesahan Disediakan Secara Automatik
Peraturan model anda turut digunakan. Medan yang ditandakan sebagai wajib atau mempunyai panjang maksimum membawa pengesahan yang sama ke dalam borang secara percuma.
Menggunakannya dalam Paparan
Dalam paparan, anda mencipta borang dengan cara yang sama seperti mana-mana borang. PostForm() yang kosong memaparkan input kosong yang sedia diisi oleh pengguna.
def create(request):
form = PostForm()
return render(request, "create.html", {"form": form})Mengikat pada Satu Contoh
Hantarkan objek sedia ada dengan instance dan borang akan mengisi nilainya terlebih dahulu. ModelForm yang sama kini mengendalikan penciptaan dan pengeditan.
form = PostForm(instance=post)Semakan Pantas
Di manakah anda memberitahu ModelForm model dan medan yang perlu digunakan?
Imbas Kembali: Asas ModelForm
Syabas! ModelForm membina borang daripada model menggunakan Meta dalaman yang mengandungi model dan fields. Anda mengelakkan pengulangan dan mewarisi pengesahan secara automatik. ✨
Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Mengisytiharkan ModelForm dan Meta.fields” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Django Academy, termasuk “Mengisytiharkan ModelForm dan Meta.fields”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Django Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mengisytiharkan ModelForm dan Meta.fields”?
Pautkan borang kepada model dalam beberapa baris. Anda berlatih Django Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Django Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Django Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Mengisytiharkan ModelForm dan Meta.fields” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Django Academy ini?
Ya. Setiap pelajaran Django Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mengisytiharkan ModelForm dan Meta.fields
- form.save() dan commit=False
- Pengesahan Tersuai dengan kaedah clean
- Widget, Label dan Teks Bantuan