django中的通用视图 - 如何使日期变量输出正确的格式

时间:2011-08-06 16:54:46

标签: django django-templates

以下是(博客的)月度存档的模板。请注意,此处{{ month }}变量为我提供了该月第一天的完整日期,例如2011年8月1日。如何才能使变量输出仅在月份(例如8月)?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Monthly Archive</title>
    </head>
    <body>
        <h1>Monthly Archive - {{ month }}</h1>
        {% for entry in object_list %}
        <p><a href="{{ entry.get_absolute_url }}">{{ entry.title }}</a></p>
        {% endfor %}
    </body>
</html>

这是网页:

entry_info_dict = {
    'queryset': Entry.objects.all(),
    'date_field': 'pub_date',
}

    urlpatterns = patterns('',
        (r'^weblog/(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$', 'django.views.generic.date_based.object_detail', entry_info_dict),
        (r'^weblog/(?P<year>\d{4})/$',
          'django.views.generic.date_based.archive_year',
          entry_info_dict),
        (r'^weblog/(?P<year>\d{4})/(?P<month>\w{3})/$',
          'django.views.generic.date_based.archive_month',
          entry_info_dict),
        (r'^weblog/(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/$',
          'django.views.generic.date_based.archive_day',
          entry_info_dict),
        (r'^weblog/$', 'django.views.generic.date_based.archive_index',
          entry_info_dict),)

更新

好的,我想出了如何过滤月份。我必须使用{{ month|date:"F" }}而不是{{ month }}。但是,我不熟悉这里的语法。为什么是“F”?

1 个答案:

答案 0 :(得分:1)

使用日期过滤器更新了您的问题以表明。 'F'是PHP建立的历史选择,后跟Python。他们刚用完了。