dev*_*Fun 4 python django redirect
我有一个基于类的视图,在其中处理表单并在成功提交后重定向用户,如下所示:
视图.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 })
Run Code Online (Sandbox Code Playgroud)
urls.py
...
url(r'^submit/success', SubmitView.as_view(), name='success'),
...
Run Code Online (Sandbox Code Playgroud)
可以通过输入 success/submit 直接访问 url。我不在网站上使用任何身份验证,并希望用户只能在重定向后访问提交/成功页面,这样他们就无法直接访问它。我该怎么做?
如果您正在使用session,您可以像这样完成它:
# 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
Run Code Online (Sandbox Code Playgroud)