Django重定向仍然显示重定向表单视图

时间:2014-05-07 23:00:56

标签: django django-forms django-views

我目前正在实现一个非常标准的基于类的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的成功观点。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您所拥有的是一个匹配所有内容且在thank-you页面之前匹配的网址。

您需要在$之后添加^,以确保网址只匹配一种模式,而不是基本上所有模式。

url(r'^$', views.EmailView.as_view(), name='landing'),
#      ^ this must be added
url(r'^thank-you/$', views.success, name='success') #......