Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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自动检测传递给模板的表单_Django_Django Forms_Django Templates - Fatal编程技术网

Django自动检测传递给模板的表单

Django自动检测传递给模板的表单,django,django-forms,django-templates,Django,Django Forms,Django Templates,过去,我将所有表单命名为form,并在base.html模板中使用{{form.errors}捕获所有错误 现在,我已经在许多不同的视图中对不同的表单进行了不同的命名,但是我想保持这种表单错误捕获的通用性,如何检测所有传递的表单并对它们进行迭代 谢谢除非在上下文中,否则您的模板没有可用的内容。因为您管理每个视图的上下文,所以我不确定这里有什么问题。不管您的表单在视图中的名称是什么,您只需将其作为“表单”传递给上下文即可: 如果一个视图包含多个表单,只需提供一个名为“forms”的上下文变量,并将

过去,我将所有表单命名为
form
,并在base.html模板中使用
{{form.errors}
捕获所有错误

现在,我已经在许多不同的视图中对不同的表单进行了不同的命名,但是我想保持这种表单错误捕获的通用性,如何检测所有传递的表单并对它们进行迭代


谢谢

除非在上下文中,否则您的模板没有可用的内容。因为您管理每个视图的上下文,所以我不确定这里有什么问题。不管您的表单在视图中的名称是什么,您只需将其作为“表单”传递给上下文即可:

如果一个视图包含多个表单,只需提供一个名为“forms”的上下文变量,并将其列为一个列表:

render_to_response('template.html', {
    'forms': [first_form, second_form]
}, context_instance=RequestContext(request))
或者更像是一本字典,这样你就可以知道哪种形式是哪种:

render_to_response('template.html', {
    'forms': {
        'alpha': first_form,
        'beta': second_form,
    },
}, context_instance=RequestContext(request))

这个想法是,你几乎可以做任何你喜欢的事。只需设置您想要的上下文,然后在模板中使用它。问题出在哪里?

在Django 1.3Yep中也是一个选项,但是由于
render\u to\u response
在1.3中仍然有效,因此我编写了示例代码,这样它可以与Django的任何版本一起使用(OP没有指定它们正在运行的版本)。
render_to_response('template.html', {
    'forms': {
        'alpha': first_form,
        'beta': second_form,
    },
}, context_instance=RequestContext(request))