我需要将实现部分传递到我博客的每个页面。从谷歌,我最终创建了一个这样的 context_processor
# processor.py
from myblog.models import Post
def get_date(request):
return {'dates' : Post.objects.order_by('created')}
这是base.html
<ul>
{% for d in dates %}
<li><a href="#">{{ d.created|date:"M-Y"}}</a></li>
{% endfor %}
</ul>
这是 TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages",
'myblog.processor.get_date',
)
最后,为了让日期出现在页面上,我需要在每个视图中传递 RequestContext。这使我不得不在每个视图中重复代码,但我可以使用这里的解决方案来克服它。但是,基于此,可能会导致性能问题。
最后,Django中这个小任务的最佳解决方案是什么?