django template context_processors 模板全局变量

每次返回response,都要加一样的变量,如,{'user': username, 'role': role}。

这时候采用 context_processors 可以在每次返回时不用带{'user': username, 'role': role},而是将这些变量写到 context_processors 里面。


iaasms/settings.py

老版本的 Django

TEMPLATE_DIRS = (

os.path.join(BASE_DIR,'iaasms/render/templates'),

)

TEMPLATE_CONTEXT_PROCESSORS= (

'django.contrib.auth.context_processors.auth',

# 'django.core.context_processors.debug',

# 'django.contrib.messages.context_processors.messages',

'iaasms.context_processors.template_variable',# 自定义

)


新版本的 Django

TEMPLATES = [

    {

'BACKEND':'django.template.backends.django.DjangoTemplates',

'DIRS': [os.path.join(BASE_DIR,"iaasms/render/templates")],

'APP_DIRS':True,

'OPTIONS': {

'context_processors': [

'django.template.context_processors.debug',

'django.template.context_processors.request',

'django.contrib.auth.context_processors.auth',

'django.contrib.messages.context_processors.messages',

'iaasms.context_processors.template_variable'

            ],

        },

    },

]


iaasms/context_processors.py

def template_variable(request):

context = {'user': username,'role': role}

return context

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容