问题描述:

I have the following form that lives on the site root at /

<form action='/play/' method='post'>

{% csrf_token %}

{{ form.player_name }}

<input id='play' type='submit' value='Play'>

</form>

then I have the view that validates this form:

def login(request):

context = {}

if request.method == 'POST':

form = LoginForm(request.POST)

if form.is_valid():

return HttpResponseRedirect('/play/')

else:

context.update(dict(form=form))

else:

context.update(dict(form=LoginForm(initial={'player_name':'Please tell us your name'})))

return render_to_response('login.html', context, context_instance=RequestContext(request))

And the actual play view:

def play(request):

p1 = briscola.Player(request.POST['player_name'])

The problem is that of course the redirect looses the POST data. But why doesn't it POST directly to the play view by itself when the form.is_valid?

相关阅读:
Top