Widgets, rótulos e textos de ajuda
Controle como cada campo é renderizado
Widgets, rótulos e textos de ajuda é uma aula grátis de Django Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Django Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Django Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Polishing the Form
A working ModelForm is great, but the auto-generated inputs feel plain. You can refine how each field looks and reads with widgets, labels, and help text. 🎨
What a Widget Is
A widget is the HTML control rendered for a field, such as a text box, textarea, or date picker. Swap it to change the input shown.
Overriding Widgets in Meta
Set the widgets dict in Meta to map a field name to a different control. Here a body field becomes a roomy textarea.
class Meta:
model = Post
fields = ["body"]
widgets = {"body": forms.Textarea}Passing Widget Attributes
Instantiate the widget to pass HTML attrs, like rows or a CSS class. This is how you wire forms into your styling.
widgets = {
"body": forms.Textarea(attrs={"rows": 4})
}Adding a CSS Class
The same attrs dict adds a class so your stylesheet can target the input. Great for Bootstrap or your own utility classes.
forms.TextInput(attrs={"class": "form-control"})Setting a Placeholder
A placeholder hints what to type before the user clicks in. Add it through attrs to guide people gently.
forms.TextInput(attrs={"placeholder": "Enter a title"})Custom Labels
Django labels fields from their names, but you can override them. The labels dict in Meta gives any field a friendlier caption.
labels = {"body": "Post content"}Why Labels Matter
Clear labels make a form readable and accessible. A field named pub_date reads far better shown as "Publish date" to your users.
Adding Help Text
The help_texts dict shows a small hint under a field. Use it to explain limits or formatting without cluttering the label.
help_texts = {"title": "Keep it under 60 characters."}Custom Error Messages
You can even reword validation errors with the error_messages dict, so the wording matches your app's voice.
error_messages = {
"title": {"required": "Please add a title."}
}Putting It Together
All of these live side by side in Meta. Mixing widgets, labels, and help_texts gives a clean, branded form with almost no extra code.
class Meta:
model = Post
fields = ["title", "body"]
labels = {"body": "Content"}Quick Check
Which Meta dict changes the HTML control rendered for a field?
Recap: Customizing Fields
You did it! In Meta you can set widgets, labels, help_texts, and error_messages to make any ModelForm look and read exactly how you want. 🌟
Perguntas Frequentes
A aula “Widgets, rótulos e textos de ajuda” é grátis?
Sim — o texto completo de “Widgets, rótulos e textos de ajuda” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Django Academy, atualize para CoddyKit PRO. O curso de Django Academy inclui 4 aulas no total.
O que vou aprender em “Widgets, rótulos e textos de ajuda”?
Controle como cada campo é renderizado Você pratica Django Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Django Academy?
Nenhuma experiência prévia é necessária. Django Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Widgets, rótulos e textos de ajuda”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Django Academy?
Sim. Cada aula de Django Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Declarando um ModelForm e Meta.fields
- form.save() e commit=False
- Validação personalizada com métodos clean
- Widgets, rótulos e textos de ajuda