Django 如何在success\u url中传递上下文数据?
我制作了一个表单,希望再次返回到相同的表单,这次使用上下文数据,可以在模板中使用,以显示表单已成功发送 我该怎么做Django 如何在success\u url中传递上下文数据?,django,django-forms,django-templates,django-views,Django,Django Forms,Django Templates,Django Views,我制作了一个表单,希望再次返回到相同的表单,这次使用上下文数据,可以在模板中使用,以显示表单已成功发送 我该怎么做 class ContactUsView(FormView): form_class = ContactUsForm template_name = 'website/pages/contact_us.html' def form_valid(self, form): form.send_email() return supe
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\u url
返回到ContactUsView
,例如{'success':'true'}
,我可以在模板中读取它,并呈现一个表示它已成功的框。我不想换到另一个静态页面 将这样的url添加到url.py
:
url(r'^contact/(?P<success>\w+)$', ContactUsView.as_view(), name="ContactUsView"),
你可以在你的模板中使用
{{my_var.success}}
。试试这个返回反向('url_name',kwargs={'pk':pk})
我并不是很想传递一个kwarg,因为我必须改变该页面的url模式。这似乎有点过分了。我只是想把一些变量传递给上下文。如果我使用您的方法,它在任何情况下都不会立即工作,而不会改变一些事情:对于参数为“()”且关键字参数为“{pk':'12'}”的“ContactUsView”没有找到。尝试了1个模式:['contact/$']
对于这种情况,可以在url中使用可选参数。给你的url.py
.url(r'^contact/$,ContactUsView.as_view(),name=“ContactUsView”),添加这样的url:url(r'^contact/(?P\w+)',ContactUsView.as_view(),name=“ContactUsView”),
并更改你的视图:def ContactUsView(success=None):
现在的问题是,如何让模板检测/解析success
kwarg?
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