被继承的页面为了避免数据冲突不能直接使用上下文,需要自定义上下文处理器!
最常见的使用时登录状态栏
新建context_processors.py文件
def ResidentNavigation(request):
statu=request.user.is_authenticated
if statu:
userstatus='注销'
myne='我'
userurl='True'
else:
userstatus='登录'
myne=''
userurl='False'
return{
'userstatus':userstatus,
'userurl':userurl,
'myne':myne,
}
设置settings文件
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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',
'django.template.context_processors.media',
#自定义上下文,应用名.文件名.函数名
'quest.context_processors.ResidentNavigation',
],
},
},
]
模板使用:
{{ userstatus }}
这里必须好像是全局上下文,在任意页面都可以使用。