首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django 1.1基于日期的泛型视图问题- archive_year,archive_month,archive_day

Django 1.1基于日期的泛型视图问题- archive_year,archive_month,archive_day
EN

Stack Overflow用户
提问于 2009-12-19 02:11:09
回答 1查看 695关注 0票数 0

我在我的第一个Django博客上,当我使用Django内置的通用视图试图按年、月和日获取帖子时,我没有得到正确的结果。(对不起,我的第一个问题是非专业的。)如果有人知道什么是合适的问题,请告诉我)

好吧,我觉得最好给你展示一下我的配置,让你自己有更好的形象:

完整博客URLconf:

代码语言:javascript
复制
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:

代码语言:javascript
复制
urlpatterns = patterns('',
(r'^blog/', include('weblog.urls.entries')),
...
)

entry_archive_year.html:

代码语言:javascript
复制
            <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在某个地方失败了,虽然它处于调试模式,但我不知道它在哪里。我很感谢对此的任何支持。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-19 02:18:09

月份信息存储在上下文变量date_list中,而不是pub_date中。

来自archive_year的django文档

模板上下文:

除了extra_context之外,模板的上下文将是:

  • date_list:根据queryset,按升序表示在给定年份中有对象可用的所有月份的datetime.date对象列表。

以下是其中的诀窍:

代码语言:javascript
复制
{% for month in date_list %}
    <li>
        <a href="/blog/{{ year }}/{{ month|date:"b" }}/">{{ month|date:"F" }}</a>
    </li>
{% endfor %}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1931708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档