Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在success\u url中传递上下文数据?_Django_Django Forms_Django Templates_Django Views - Fatal编程技术网

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