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))