Skip to content

Instantly share code, notes, and snippets.

@pylemon
Created April 7, 2012 16:34
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save pylemon/2330177 to your computer and use it in GitHub Desktop.
Save pylemon/2330177 to your computer and use it in GitHub Desktop.
django: using(request.POST or None) hack in views | advanced forms usage
# simple form usage in view
def my_view(request, template_name='home.html'):
# sticks in a POST or renders an empty form
form = MyForm(request.POST or None)
if form.is_valid():
do_something()
return redirect('/')
return render_to_response(template_name, {'form':form})
# form with files
def my_view(request, template_name='home.html'):
form = MyForm(request.POST or None, request.FILES or None)
if form.is_valid():
do_something()
return redirect('/')
return render_to_response(template_name, {'form':form})
# ModelForm usage
def my_model_edit(request, slug=slug, template_name='home.html'):
mymodel = get_object_or_404(MyModel, slug=slug)
form = MyModelForm(request.POST or None, instance=mymodel)
if form.is_valid():
mymodel = form.save()
mymodel.edited_today = True
mymodel.save()
return redirect('/')
return render_to_response(template_name, {
'form':form,
'mymodel':mymodel
}
)
@chriskavanagh
Copy link

Awesome! Thank you for posting.

@kasaiee
Copy link

kasaiee commented Sep 22, 2016

it's cool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment