私のブログのすべてのページに達成セクションを渡す必要があります。 Googleからの、私はこのDjango - すべてのテンプレートの共通データ
# processor.py
from myblog.models import Post
def get_date(request):
return {'dates' : Post.objects.order_by('created')}
このようcontext_processorを作成で終わるにはbase.html
<ul>
{% for d in dates %}
<li><a href="#">{{ d.created|date:"M-Y"}}</a></li>
{% endfor %}
</ul>
であり、これはさせるために、
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',
)
最後にTEMPLATE_CONTEXT_PROCESSORSです日付がページに表示されると、私はすべてのビューでRequestContextを渡す必要があります。これにより、すべてのビューでコードを繰り返す必要がありますが、それを解決するにはhereのソリューションを使用できます。ただし、thisをベースにすると、パフォーマンス上の問題が発生する可能性があります。
最後に、Djangoのこの小さなタスクの最適な解決策は何ですか?