4. 模板上下文处理器(context processor):
-
在
settings.py
中,包含了当前使用的上下文处理器。他的作用是可以给每一个response
都提供自己想要添加的参数。 -
settings.py->TEMPLATES->OPTIONS->context_processors
中使用的上下文处理器的作用:- django.template.context_processors.debug:增加一个
debug
变量。 - django.template.context_processors.request:增加一个
request
的变量。 - django.contrib.auth.context_processors.auth:增加了一个
user
的变量。 - django.contrib.messages.context_processors.messages: 增加了一个
messages
的变量。
- django.template.context_processors.debug:增加一个
-
自定义上下文处理器:
创建一个专门用来存放上下文处理器的文件夹以及一个`__init__.py`文件和一个用来存放上下文处理器的文件。**中间件**有点类似给request添加属性,而`上下文处理器`有点类似给模板添加属性的意思。一个是向上,一个是向下。
python
def frontuser(request):
userid = hyauth.getuid(request)
userModel = models.FrontendUserModel.objects.filter(pk=userid).first()
if userModel:
return {'frontuser':userModel}
else:
return {}
```