Declaración de un ModelForm y Meta.fields
Vincule un formulario a un modelo en pocas líneas
Declaración de un ModelForm y Meta.fields es una lección gratuita de Django Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Django Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Django Academy incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
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. ✨
Preguntas frecuentes
¿La lección «Declaración de un ModelForm y Meta.fields» es gratis?
Sí — el texto completo de «Declaración de un ModelForm y Meta.fields» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Django Academy, actualiza a CoddyKit PRO. El curso de Django Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Declaración de un ModelForm y Meta.fields»?
Vincule un formulario a un modelo en pocas líneas Practicas Django Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Django Academy?
No se requiere experiencia previa. Django Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Declaración de un ModelForm y Meta.fields»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Django Academy?
Sí. Cada lección de Django Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Declaración de un ModelForm y Meta.fields
- form.save() y commit=False
- Validación personalizada con métodos clean
- Widgets, etiquetas y texto de ayuda