0
成功提交表單後,我重定向到「成功」頁面,顯示「感謝」消息以及有關提交的一些信息。爲此,我將POST數據放入會話中,重定向到適當的URL,然後使用會話數據呈現模板。在POST後重定向並傳遞數據時重定向URL的持久性
但是,這意味着如果有人手動導航到'成功'網址,他們將看到從以前的表單提交「成功」消息。我如何防止這種情況發生?該表格在/register/
處理。成功的提交被重定向到/register/success
。我想要在瀏覽器中輸入/register/success/
的人(未提交表單)查看錯誤頁面或其他內容。這怎麼處理?
urls.py
url(r'^register/$', views.register, name='register'),
url(r'^register/success/$', views.registration_success, name='registration_success'),
views.py
def register(request):
if request.method == 'POST':
if the_form.is_valid():
my_id = the_form.cleaned_data['myid']
email_addr = the_form.cleanedJ_data['emailaddr']
request.session['registration'] = {'my_id': my_id, 'email_addr': email_addr }
return HttpResponseRedirect(reverse('polls:registration_success'))
def registration_success(request):
template = loader.get_template('polls/submitted.html')
context = RequestContext(request, request.session.get('registration'))
return HttpResponse(template.render(context))
@edwinlunardo謝謝!在沒有提交表單的情況下,對「get」的第二個參數是否將「form-submitted」設置爲false? (不知道那個默認的「False」值是如何工作的......我也想確保在有人提交表單並看到「成功頁面」後將「form-submitted」設置爲False,因爲我不希望他們稍後再回到那個頁面...? – plact
第二個參數不會將'form-submitted'設置爲'False',但如果'get'方法不返回'form-submitted'鍵,它將返回第二個參數我們可以說它是沒有鍵的默認值 –
好吧,明白了,非常感謝! – plact