我已经创建了一个表单,我希望再次返回相同的表单,这次使用可以在我的模板中使用的上下文数据来显示表单已成功发送。
我该怎么做?
class ContactUsView(FormView):
form_class = ContactUsForm
template_name = 'website/pages/contact_us.html'
def form_valid(self, form):
form.send_email()
return super(ContactUsView, self).form_valid(form)
def get_success_url(self):
# Something here?
所以我基本上希望get_success_url
返回ContactUsView
,例如{'success':'true'}
我可以在模板中阅读并呈现一个表示已成功的方框。我不想换到另一个静态页面!
答案 0 :(得分:4)
将这样的网址添加到urls.py
:
url(r'^contact/(?P<success>\w+)$', ContactUsView.as_view(), name="ContactUsView"),
您可以在class-based
视图中访问此参数,如下所示:
将get_context_data
方法添加到class-view
class class ContactUsView(DetailView):
context_object_name = 'my_var'
def get_context_data(self, **kwargs):
context = super(ContactUsView, self).get_context_data(**kwargs)
context['success'] = self.success
return context
您可以在模板中使用{{ my_var.success }}
。