我想根据数据库中的日期字段创建不同月/年值的列表。 所以例如在我的表中我有
id | date_added |标题
1 | 01/06/2010 | ????
2 | 02/09/2009 | ????
3 | 24/08/2009 | ????
4 | 15/06/2009 | ????
5 | 16/06/2009 | ????
此表格来自模型article
我如何创建一个列表:
['June 2009', 'August 2009', 'September 2009', 'January 2010']
答案 0 :(得分:6)
我假设您需要['2009年6月','2009年8月','2009年9月','2010年1月']才能在模板中显示。如果是这样,那么你可以做类似
的事情 Article.objects.values_list('date_added', flat=True)
将为您提供这些日期的列表。然后,您可以使用date
模板过滤器输出您想要的内容。
像
这样的东西{% for item in your_dates_list_that_you_passed_to_the_template %}
{{ item|date:"F Y" }}
{% endfor %}
<强> [编辑] 强>
关于“不同”的要求,请参阅http://docs.djangoproject.com/en/dev/ref/models/querysets/#distinct
答案 1 :(得分:3)
使用dates()
过滤器最终解决了我的问题,尽管上面的两个答案都给了我想要的结果。
http://docs.djangoproject.com/en/dev/ref/models/querysets/#dates-field-kind-order-asc
答案 2 :(得分:0)
我将这样做的方法是映射一个函数来格式化查询集上的日期列。像这样:
queryset = Article.objects.filter()
print map(lambda article: article.date_added.strftime('%B %Y'), queryset)