0Pricing
Django Academy · Lezione

Dichiarare un ModelForm e Meta.fields

Collegare un form a un modello in poche righe

Dichiarare un ModelForm e Meta.fields è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

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 Post

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

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

Domande Frequenti

La lezione «Dichiarare un ModelForm e Meta.fields» è gratuita?

Sì — il testo completo di «Dichiarare un ModelForm e Meta.fields» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.

Cosa imparerò in «Dichiarare un ModelForm e Meta.fields»?

Collegare un form a un modello in poche righe Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Django Academy?

Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Dichiarare un ModelForm e Meta.fields»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Django Academy?

Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Dichiarare un ModelForm e Meta.fields
  2. form.save() e commit=False
  3. Validazione personalizzata con i metodi clean
  4. Widget, etichette e testo di supporto
← Torna a Django Academy