如果你想在所有模板上显示这个变量,那么你需要实现一个template context processor。
您只需对代码进行少量更改:
def get_base_content(request):
footer = SiteContent.objects.get(pk=1)
return {"footer" : footer}
现在,将其添加到单独的文件中,命名为 custom_context.py。在您的 settings.py 中将其添加到您的 TEMPLATE_CONTEXT_PROCESSORS 设置中:
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages",
"myapp.custom_context.get_base_content", # don't forget the comma!
)
现在,在您的视图代码中,您只需要确保您使用的是RequestContext。最简单的方法是使用render shortcut:
from django.shortcuts import render
def myview(request):
return render(request,'hello.html',{'foo': 'bar'})
在hello.html 中,您将拥有{{ foo }} 和{{ footer }}