我想知道是否有人知道:
例如,我有一个用户填写的表单,当他提交时,该页面将重定向到"谢谢"页面。一切正常。urls.py 我有这样一行指向该页面存在:
url(r'^thankyou/$', 'render_form'),
但是,当我输入网址 mysite.com/thankyou/时,出现了"谢谢"页面......但是我只需要它在提交表单时才显示,并在用户尝试直接打开表单时隐藏它。
请帮忙。提前感谢!
您可以在重定向之前在表单处理视图中的会话中放置某些内容,并在感谢 URL 中检查它:如果不存在,则返回 403 错误。像这样:
def form_handling_view(request):
if request.POST:
form = MyForm(request.POST)
if form.is_valid():
... handle the form ...
request.session['form_posted'] = True
return redirect('thank_you')
def thank_you(request):
if not request.session.pop('form_posted', False):
return HttpResponseForbidden('not permitted')
... render thank_you page ...
注意 我在thank_you中使用pop
,以确保无论如何都会从会话中删除密钥。