gpt4 book ai didi

python - Django - 只有在 HttpResponseRedirect 之后才能访问页面

转载 作者:行者123 更新时间:2023-11-28 22:52:22 24 4
gpt4 key购买 nike

我有一个基于类的 View ,我在其中处理表单并在成功提交后重定向用户,如下所示:

views.py

def get(self,request):
form = self.form_class()
return render(request, template_name, { 'form' : form })
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST)
if form.is_valid():
...
return HttpResponseRedirect(reverse('success'))

return render(request, template_name, { 'form' : form })

urls.py

...
url(r'^submit/success', SubmitView.as_view(), name='success'),
...

可以通过键入 success/submit 直接访问 url。我在网站上不使用任何身份验证,希望用户只能在重定向后访问提交/成功页面,这样他们就无法直接访问它。我该怎么做?

最佳答案

如果您使用 sessions ,你可以这样完成它:

# in the view where form is submitted
if form.is_valid():
request.session['form-submitted'] = True
return HttpResponseRedirect(reverse('success'))

# in the success view
def get(self, request):
if not request.session.get('form-submitted', False):
# handle case where form was not submitted
else:
# render the template

关于python - Django - 只有在 HttpResponseRedirect 之后才能访问页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20523823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com