Django新手,如果这是微不足道的,我很抱歉
我有一个由许多其他模板扩展的"base.html“模板。在这个"base.html“模板中,我有一个从名为"SearchForm”的"forms.Form“派生类生成的表单。
。问题是:是否可以将"SearchForm“导入到"base.html”模板中,而不是将"Searchform“作为上下文传递给从"base.html”派生的每个视图
发布于 2011-10-09 08:28:57
Use Django's template context processor。
下面是一个简单的例子:
def search_form_context_processor(request):
return {'form': SearchForm() }然后用以下命令更新settings.py:
TEMPLATE_CONTEXT_PROCESSORS = (
....
my_module.search_form_context_processor,
....
)https://docs.djangoproject.com/en/dev/ref/settings/#template-context-processors
在此之后,通过传入RequestContext并使用render_to_response呈现的任何模板上都可以使用{{ form }}。
发布于 2011-10-09 16:39:22
就像Issac Kelly写的那样,你可以创建一个模板标签,它会将表单添加到你的上下文中。文档是here格式的。
要将表单添加到上下文中,您可以这样写
class FormNode(template.Node):
def render(self, context):
context['form'] = MyForm()
return ''
def add_form_to_context(parser, token):
return FormNode()发布于 2011-10-09 11:28:07
其他选项(除了@Derek之外)是具有自定义模板标记,A)写入表单html,或者B)将表单添加到页面上下文中。
https://stackoverflow.com/questions/7700513
复制相似问题