上下文处理器(context_processor)定义一次,能实现共用数据的在项目里的每个页面上重复使用。比如:最新文章
1、在APP目录中创建自定义的上下文处理器文件。如:app_context_processor.py
2、在创建的文件中定义函数示例代码。如下
from .models import Article
#共用部分数据自定议上下文
def myapp_context_processor(request):
articles = Article.objects.order_by('-datetime')[:10]
return {'articles': articles}
3、在项目settings.py文件中加入自定义上下文。如下
TEMPLATES = [
{
......
'OPTIONS': {
'context_processors': [
......
'myapp.app_context_processor.myapp_context_processor', #自定议上下文
],
},
},
]
4、直接在模板页面中使用
{% for article in articles %}
<li>{{ article.title }}</li>
{% empty %}
<li>暂无数据!</li>
{% endfor %}