Déclarer un ModelForm et Meta.fields
Associez un formulaire à un modèle en quelques lignes.
Déclarer un ModelForm et Meta.fields est une leçon Django Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Django Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Django Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Why ModelForm Exists
You already have a model describing your data. A ModelForm builds a form straight from that model, so you never repeat the same fields twice. 🎯
Import ModelForm
ModelForms live in the same place as regular forms. You subclass forms.ModelForm instead of forms.Form to get the model-aware version.
from django import forms
from .models import PostThe Meta Class
A ModelForm needs an inner Meta class. Meta is where you tell the form which model it is built from and which fields to include.
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ["title", "body"]Point at a Model
The model attribute names the class your form mirrors. Django reads that model's fields to decide which form inputs to generate for you.
class Meta:
model = PostListing Fields Explicitly
The fields list controls exactly which model fields become form inputs. Naming them keeps the form intentional and safe from surprises.
fields = ["title", "body", "published"]The Shortcut: fields = all
Setting fields to the string "__all__" includes every model field. It is handy in demos but risky, since new model fields appear automatically.
class Meta:
model = Post
fields = "__all__"Excluding Instead
You can flip it with exclude to keep everything except a few fields. Prefer an explicit fields list when you can, for clarity.
class Meta:
model = Post
exclude = ["author"]Auto-Generated Widgets
Django picks a sensible widget for each field automatically. A CharField becomes a text box and a BooleanField becomes a checkbox without extra work.
Validation Comes Free
Your model's rules ride along too. A field marked required or with a max length brings that same validation into the form for free.
Using It in a View
In a view you create the form the same way as any form. An empty PostForm() renders blank inputs ready for the user to fill.
def create(request):
form = PostForm()
return render(request, "create.html", {"form": form})Binding to an Instance
Pass an existing object with instance and the form pre-fills its values. The same ModelForm now powers both creating and editing.
form = PostForm(instance=post)Quick Check
Where do you tell a ModelForm which model and fields to use?
Recap: ModelForm Basics
Nice work! A ModelForm builds a form from a model using an inner Meta with model and fields. You skip repetition and inherit validation for free. ✨
Questions Fréquemment Posées
La leçon « Déclarer un ModelForm et Meta.fields » est-elle gratuite ?
Oui — le texte complet de « Déclarer un ModelForm et Meta.fields » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Django Academy, passe à CoddyKit PRO. Le cours Django Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Déclarer un ModelForm et Meta.fields » ?
Associez un formulaire à un modèle en quelques lignes. Tu pratiques Django Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Django Academy ?
Aucune expérience préalable n'est requise. Django Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Déclarer un ModelForm et Meta.fields » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Django Academy ?
Oui. Chaque leçon Django Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Déclarer un ModelForm et Meta.fields
- form.save() et commit=False
- Validation personnalisée avec les méthodes clean
- Widgets, libellés et textes d’aide