DRYer instantiation of Forms

1
2
3
4
5
6
def form_kwargs(request):
    kwargs = {}
    if request.method == 'POST':
        kwargs['data'] = request.POST
        kwargs['files'] = request.FILES
    return kwargs

Comments

mark0978 (on April 21, 2009):

Maybe its just me, but I don't see how this is "DRY"er. Not even sure what the point of it is.

#

SmileyChris (on May 6, 2009):

Normally, you'd write:

if request.method == 'POST':
    form = MyForm(data=request.POST, files=request.FILES)
    if form.is_valid():
         form.save()
         # Redirect
else:
    form = MyForm()

Now you write:

form = MyForm(**form_kwargs(request))
if form.is_valid():
     form.save()
     # Redirect

#

(Forgotten your password?)

You may use Markdown syntax here, but raw HTML will be removed.