首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将forms.form导入模板

问将forms.form导入模板
EN

Stack Overflow用户
提问于 2011-10-09 07:52:39
回答 3查看 161关注 0票数 0

Django新手,如果这是微不足道的,我很抱歉

我有一个由许多其他模板扩展的"base.html“模板。在这个"base.html“模板中,我有一个从名为"SearchForm”的"forms.Form“派生类生成的表单。

。问题是:是否可以将"SearchForm“导入到"base.html”模板中,而不是将"Searchform“作为上下文传递给从"base.html”派生的每个视图

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-09 08:28:57

Use Django's template context processor。

下面是一个简单的例子:

代码语言:javascript
复制
def search_form_context_processor(request):
    return {'form': SearchForm() }

然后用以下命令更新settings.py:

代码语言:javascript
复制
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 }}。

票数 2
EN

Stack Overflow用户

发布于 2011-10-09 16:39:22

就像Issac Kelly写的那样,你可以创建一个模板标签,它会将表单添加到你的上下文中。文档是here格式的。

要将表单添加到上下文中,您可以这样写

代码语言:javascript
复制
class FormNode(template.Node):
    def render(self, context):
        context['form'] = MyForm()
        return ''

def add_form_to_context(parser, token):
    return FormNode()
票数 1
EN

Stack Overflow用户

发布于 2011-10-09 11:28:07

其他选项(除了@Derek之外)是具有自定义模板标记,A)写入表单html,或者B)将表单添加到页面上下文中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7700513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档