关于模版变量参考
https://www.cnblogs.com/simon-xm/p/4022194.html
settings.py 和 global_settings.py 的关系??
from django.conf import global_settings
global_settings 是settings .py 的妈
模板变量可以在 settings.py 中全局指定
比如在 app应用下 ,新建 xx.py 里面写入函数
def django_verison(request):
return {'django_verison':'2.1'}
然后在 TEMPLATES (dj 2版本是在这,早起版本请查看官方文档)添加你的全局变量的路径:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, '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',
'apps.utils.contexts.django_verison',
],
},
},
]
然后函数返回的字典的key 就可以在模板里面全局使用了
span>{{ django_verison }}</span>
为什么 模版里面可以直接用 user 就是应为 对应的'django.contrib.auth.context_processors.auth',
函数内容如下:
def auth(request):
"""
Return context variables required by apps that use Django's authentication
system.
If there is no 'user' attribute in the request, use AnonymousUser (from
django.contrib.auth).
"""
if hasattr(request, 'user'):
user = request.user
else:
from django.contrib.auth.models import AnonymousUser
user = AnonymousUser()
return {
'user': user,
'perms': PermWrapper(user),
}
这就比较清晰了
网友评论