CreateView e UpdateView
Crie páginas de adição e edição a partir de um modelo
CreateView e UpdateView é uma aula grátis de Django Academy no CoddyKit. Esta é a aula 2 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.
Pages That Write Data
Showing data is half the job. To add and edit records you reach for CreateView and UpdateView.
Meet CreateView
CreateView builds an add page: it renders a form, validates input, and saves a new record for you.
A Form from Fields
Tell CreateView the fields you want, and it generates a matching form straight from your model.
from django.views.generic import CreateView
class PostCreate(CreateView):
model = Post
fields = ["title", "body"]The Form Template Name
CreateView and UpdateView both look for app/model_form.html, like post_form.html, by default.
Rendering the Form
Inside the template the generated form arrives as form, so you render its fields and a submit button.
<form method="post">{% csrf_token %}
{{ form.as_p }}
<button>Save</button>
</form>Meet UpdateView
UpdateView works just like CreateView, but it loads an existing record first so the form starts pre-filled.
Editing an Existing Record
UpdateView reads a pk from the URL, fetches that object, and saves your changes back to it.
from django.views.generic import UpdateView
class PostUpdate(UpdateView):
model = Post
fields = ["title", "body"]Where to Go After Saving
After a successful save, the view redirects. Set success_url to control exactly where users land next.
from django.urls import reverse_lazy
class PostCreate(CreateView):
success_url = reverse_lazy("post_list")Or Let the Model Decide
Skip success_url by giving your model a get_absolute_url; the view will redirect there automatically.
def get_absolute_url(self):
return reverse("post_detail", args=[self.pk])Wiring the Edit URLs
Create needs no pk, but update does, so its URL captures one with as_view() like the others.
path("new/", PostCreate.as_view()),
path("<int:pk>/edit/", PostUpdate.as_view()),Shared Form Power
Because both reuse the same form and template, add and edit pages stay consistent with almost no extra code. 💪
Quick Check
What is the main difference between CreateView and UpdateView?
Recap: Create and Update
You used CreateView to add records and UpdateView to edit them, shared one form template, and steered redirects with success_url. 🎉
Perguntas Frequentes
A aula “CreateView e UpdateView” é grátis?
Sim — o texto completo de “CreateView e UpdateView” é 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 “CreateView e UpdateView”?
Crie páginas de adição e edição a partir de um modelo 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 2 de 4.
Quanto tempo leva a aula “CreateView e UpdateView”?
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
- ListView e DetailView
- CreateView e UpdateView
- DeleteView e success_url
- Substituindo get_queryset e Templates