我在我的第一个Django博客上,当我使用Django内置的通用视图试图按年、月和日获取帖子时,我没有得到正确的结果。(对不起,我的第一个问题是非专业的。)如果有人知道什么是合适的问题,请告诉我)
好吧,我觉得最好给你展示一下我的配置,让你自己有更好的形象:
完整博客URLconf:
from django.conf.urls.defaults import *
from weblog.models import Entry
entry_info_dict = {
'queryset': Entry.published,
'date_field': 'pub_date',
'template_object_name': 'Entry',
}
urlpatterns = patterns('django.views.generic.date_based',
(r'^$', 'archive_index', entry_info_dict, 'weblog_entry_archive_index'),
(r'^(?P<year>\d{4})/$',
'archive_year', entry_info_dict,
'weblog_entry_archive_year'),
(r'^(?P<year>\d{4})/(?P<month>\w{3})/$',
'archive_month',
entry_info_dict,
'weblog_entry_archive_month'),
(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/$',
'archive_day',
entry_info_dict,
'weblog_entry_archive_day'),
(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$',
'object_detail',
entry_info_dict,
'weblog_entry_detail'),
)urls.py:
urlpatterns = patterns('',
(r'^blog/', include('weblog.urls.entries')),
...
)entry_archive_year.html:
<h2>Archive for {{ year }}</h2>
<ul>
{% for month in pub_date %}
<li>
<a href="/blog/{{ year }}/{{ month|date:"b" }}/">{{ month|date:"F" }}</a>
</li>
{% endfor %}
</ul>假设我有以下博客:
example.com/blog/2009/dec/18/test
现在请求
example.com/blog/2009/
我没有对象,但是当给出完整的URL时,就会显示post。
--我认为Django在某个地方失败了,虽然它处于调试模式,但我不知道它在哪里。我很感谢对此的任何支持。
发布于 2009-12-19 02:18:09
月份信息存储在上下文变量date_list中,而不是pub_date中。
来自archive_year的django文档
模板上下文:
除了extra_context之外,模板的上下文将是:
date_list:根据queryset,按升序表示在给定年份中有对象可用的所有月份的datetime.date对象列表。以下是其中的诀窍:
{% for month in date_list %}
<li>
<a href="/blog/{{ year }}/{{ month|date:"b" }}/">{{ month|date:"F" }}</a>
</li>
{% endfor %}https://stackoverflow.com/questions/1931708
复制相似问题