我目前正在实现一个非常标准的基于类的FormView,而在form_valid上我想重定向到另一个视图(不是基于类的)。但是,URL重定向发生正常,但显示的模板仍然反映了之前的表单视图。
class EmailView(FormView):
template_name = 'landing/index.html'
form_class = EmailForm
success_url = 'success'
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
address = form.cleaned_data['email']
e = Email(email_address=address.lower())
return redirect('success')
return render(request, self.template_name, {'form': form})
def success(request):
return render(request, 'landing/thank-you.html')
是的,我已经正确地映射了成功'我在URLConf的成功观点。有什么想法吗?
答案 0 :(得分:1)
您所拥有的是一个匹配所有内容且在thank-you
页面之前匹配的网址。
您需要在$
之后添加^
,以确保网址只匹配一种模式,而不是基本上所有模式。
url(r'^$', views.EmailView.as_view(), name='landing'),
# ^ this must be added
url(r'^thank-you/$', views.success, name='success') #......