使用Django在我的模板库中显示一个表单

Osc*_*ros 4 django django-templates django-forms

在我的基本模板中,我想要包含一个搜索表单.

我已经创建了它,但我想知道是否有更好的选择,而不是传递form到我的所有扩展基础的模板?

Tim*_*ony 12

是的,这就是模板上下文处理器的用途.它们允许您将变量传递给所有模板,而无需指定.

settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.debug',

    ...

    'some_app.context_processors.search_form',
)
Run Code Online (Sandbox Code Playgroud)

context_processors.py(你把它放在你的一个应用程序中,或者如果你愿意,可以放在主目录中)

from my_forms import MySearchForm

def search_form(request):
return {
     'search_form' : MySearchForm()
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以在所有模板中使用{{search_form }}