Django Academy · Pelajaran

Mengisytiharkan ModelForm dan Meta.fields

Pautkan borang kepada model dalam beberapa baris.

Pelajaran 1 daripada 413 langkah

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 Post

Kelas 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 = Post

Menyenaraikan 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. ✨

Percuma untuk bermula

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

  1. Mengisytiharkan ModelForm dan Meta.fields
  2. form.save() dan commit=False
  3. Pengesahan Tersuai dengan kaedah clean
  4. Widget, Label dan Teks Bantuan
← Kembali ke Django Academy