On Sat, Dec 18, 2010 at 11:06 AM, Mingming Wang <mingofd...@gmail.com> wrote:
> From the tutorial of Django, there is the following code in here
> Who knows the mechanism behind a redirect or a direct response? Refer the
> comments below. Thanks a lot!

HttpResponseRedirect returns a 301 or 302 response code to the
browser, instead of more common 200 (ok), or 404 (not found).  That
simply instructs the browser to load the given URL.  The interesting
part is that that given URL replaces the original (POST) one in the
browser's history.

for example, this is what happens on the wire:

<-  GET /yourapp/voteform/
-> 200 OK (html with form)
<- POST /yourapp/vote   (params)
-> 301 Redirect (/yourapp/voteresults/)
<- GET (/yourapp/voteresults/)
-> 200 OK (html with results)

but this is what gets stored in the history:

1:
action: GET /yourapp/voteform/
cache: html with form (filled)

2:
action: GET /yourapp/voteresult/
cache: html with results


see? no traces of the POST.  if you hit 'back' in the browser, you go
to the form! the POST ceases to be an event, since from the point of
view of the browser, its only result is to go to the /voteresult/
page.

Of course, the user is free to go back and hit the submit button
again, but he's not presented with that cryptic "post again?" dialog.

-- 
Javier

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to