Вы можете использовать шаблон Post / Redirect / Get Design (PRG).Для получения более общей информации о Post / Redirect / Get, пожалуйста, смотрите следующее: http://en.wikipedia.org/wiki/Post/Redirect/Get Там есть несколько хороших блок-схем процесса.
Общий пример представления, реализующего PRG, может выглядеть следующим образом:
# urls.py
urlpatterns = patterns('',
url(r'^/$', views.my_view, name='named_url'),
)
# forms.py
class MyForm(forms.Form):
pass # the form
# views.py
def my_view(request, template_name='template.html'):
""" Example PostRedirectGet
This example uses a request context, but isn't
necessary for the PRG
"""
if request.POST:
form = MyForm(request.POST)
if form.is_valid():
try:
form.save()
# on success, the request is redirected as a GET
return HttpResponseRedirect(reverse('named_url'))
except:
pass # handling can go here
else:
form = MyForm()
return render_to_response(template_name, {
'form':form
}, context_instance=RequestContext(request))
Если вам нужно сделать что-то более интересное с GET, reverse
может принимать арги и кварги.Управляйте параметрами представления, url_pattern и обратным вызовом, чтобы отобразить результаты, которые вы хотели бы видеть.
Еще одно замечание: вам не нужно перенаправлять в то же представление (как в этом примере).Это может быть любое именованное представление, на которое вы хотите перенаправить пользователя.