Last active
August 28, 2021 09:28
-
-
Save osantana/9a2e5cc4bcdfc2fbab2d to your computer and use it in GitHub Desktop.
Django Form View Function
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Modo sugerido pela documentação do Django | |
def create(request, template_name="my_app/my_form.html"): | |
if request.method == 'POST': | |
form = MyForm(request.POST, request.FILES) | |
if form.is_valid(): | |
instance = form.save(commit=False) | |
do_x() # custom logic here | |
instance.save() | |
return redirect('home') | |
else: | |
form = MyForm() | |
return render(request, template_name, {'form': form}) | |
# Modo suscinto (deve sempre existir um form no template/POST) | |
def create(request, template_name="my_app/my_form.html"): | |
form = MyForm(request.POST or None, request.FILES or None) | |
if form.is_valid(): | |
instance = form.save(commit=False) | |
do_x() # custom logic here | |
instance.save() | |
return redirect('home') | |
return render(request, template_name, {'form': form}) | |
# Modo sugerido pela documentação do Django | |
def edit(request, obj_id, template_name="my_app/my_form.html"): | |
instance = get_object_or_404(Model, pk=obj_id) | |
if request.method == 'POST': | |
form = MyForm(inrequest.POST, request.FILES, instance=instance) | |
if form.is_valid(): | |
instance = form.save(commit=False) | |
do_x() # custom logic here | |
instance.save() | |
return redirect('home') | |
else: | |
form = MyForm() | |
return render(request, template_name, {'form': form}) | |
# Modo suscinto (deve sempre existir um form no template/POST) | |
def edit(request, obj_id, template_name="my_app/my_form.html"): | |
instance = get_object_or_404(Model, pk=obj_id) | |
form = MyForm(inrequest.POST or None, request.FILES or None, instance=instance) | |
if form.is_valid(): | |
instance = form.save(commit=False) | |
do_x() # custom logic here | |
instance.save() | |
return redirect('home') | |
return render(request, template_name, {'form': form}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment