ブログのすべてのページに達成セクションを渡す必要があります。Googleから、私はこのような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でのこの小さなタスクに最適なソリューションは何ですか?