Python 如何将数据库中的变量放入base.html模板中?
我正在做一个网页。Python 如何将数据库中的变量放入base.html模板中?,python,django,django-models,Python,Django,Django Models,我正在做一个网页。页脚中会有联系人,如电子邮件或电话。这个页脚应该无处不在,因此它位于base.html中,每个模板/html都在扩展它 我创建了一个名为ContactAdmin的表,为管理员更改其联系信息提供了简单明了的界面。这就是问题所在 base.html没有视图(它只是为了扩展),所以我不知道如何将变量-email,telephone从表ContactAdmin放入其中。我想把它放在每一个视图中,这在我看来是一个巨大的过度使用 那么如何使Django从数据库中读取这些变量并将它们放入ba
页脚中会有联系人,如电子邮件或电话。这个页脚应该无处不在,因此它位于base.html
中,每个模板/html
都在扩展它
我创建了一个名为ContactAdmin
的表,为管理员更改其联系信息提供了简单明了的界面。这就是问题所在
base.html
没有视图(它只是为了扩展),所以我不知道如何将变量-email
,telephone
从表ContactAdmin
放入其中。我想把它放在每一个视图中,这在我看来是一个巨大的过度使用
那么如何使Django从数据库中读取这些变量并将它们放入base.html
ContactAdmin表应该只有一行您不需要编辑所有视图。正是在这种情况下,django有。这里的优点是,由于基本模板仍然是模板语言的一部分,并且它可以访问上下文
,因此您只需要在自定义上下文处理器中设置这些变量,一切都应该按原样工作
有关如何编写自定义上下文处理器的一些示例:
您可以为此使用上下文处理器。例如:
yourapp/context_processors.py
def contact(request):
from yourapp.models import ContactAdmin
contacts = ContactAdmin.objects.all()
return {
'contacts': contact, # Add 'contacts' to the context
}
yourproject/settings.py
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
...
'yourapp.context_processors.contact',
]
}
}
]
我想这些联系人设置不会经常更改。因此,您可能也对查询的结果感兴趣