我如何从Django布局(如“ base.html”)中获取表单数据,而无需通过视图在所有页面中发送表单?

时间:2018-10-30 17:20:30

标签: python django django-forms django-templates django-views

许多模板都来自base.html。 base.html具有一种从用户获取电子邮件的新闻通讯形式。有什么简单的方法可以从“ base.html”中获取表单数据进行查看。 (可以通过视图在所有页面中发送表单,但是我认为有一个简单易用的主意)

1 个答案:

答案 0 :(得分:0)

使用上下文处理器执行此操作:

在您的根项目中添加一个新的.py文件,并将其命名为context_processors.py

context_processors.py

from app.forms import GlobalForm

def global_variables(request):
   form = GlobalForm()
   context = {'global_form':form}
   return context

然后在设置中。TEMPLATES将上下文处理器添加为最后一行。

# stuff
'django.contrib.messages.context_processors.messages'
'project_name.context_processors.global_variables'

因此,{{global_form}}在所有模板中均可用