﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
3204	[patch] Need ability to pass a RequestContext instance to FormPreview.	Vadim Macagon <vadim@…>	Adrian Holovaty	"I tried using the FormPreview class in django.contrib.formtools.preview today. But my templates rely on a RequestContext as opposed to just the plain Context produced by all the render_to_response() calls used by FormPreview. 

Here's what I'm currently doing:

{{{
# urls.py

(r'^apples/add/$', 'apples.views.add_apple')


# views.py

class ApplePreview(FormPreview):
    preview_template = 'apples/preview.html'
    form_template = 'apples/form.html'
    
    def done(self, request, clean_data):
        # create apple object and save to db
        # ...
        return HttpResponseRedirect('/')

@login_required
@transaction.commit_on_success
def add_apple(request):
    # ARGH! Can't pass in a RequestContext!
    return ApplePreview(AppleForm)(request)
}}}

So I suggest modifying FormPreview slightly so that the initialization method takes an optional context_instance arg that can be passed to all the render_to_response calls in preview_get(), preview_post() and post_post(). I've attached a diff with the suggested changes. With these changes I can write this:

{{{
@login_required
@transaction.commit_on_success
def add_apple(request):
    # Yay!
    return ApplePreview(AppleForm, RequestContext(request))(request)

}}}
"	enhancement	closed	contrib.formtools	dev	normal	fixed			Unreviewed	1	0	0	0	0	0
