我需要声明一个数据库驱动的字典,可以在所有模板中全局访问,并且不应该依赖于视图,因为我需要它全局用于所有模板。
我厌倦了编写上下文处理器
但是在 settings.py 中添加上下文处理器时
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.contrib.messages.context_processors.messages',
'django.core.context_processors.request',
'myapp.context_processors.myfunction",
)
它不断加载多次。然后通过这个问题,我了解到当上下文处理器通过 RequestContext 加载时,所以当我多次调用 RequestContext 时,它一直在加载。
那么有没有一种方法我可以定义一次并且可以在模板中全局访问,这也不会妨碍我的网站性能
myfunction
会像:
from ipc.declarations.models import MainDeclaration
from django.shortcuts import get_object_or_404
def myfunction(request):
declarationId = 2991
declaration = get_object_or_404(MainDeclaration, pk=declarationId, user=request.user.id)
return {'sectionGlobal': declaration}