python - 在 Django 中按月分组并检索为 datetime.date()

标签 python django datetime django-aggregation

我四处寻找如何按月对 Django 查询集进行分组。我终于找到了这段非常有用的代码:

truncate_date = connection.ops.date_trunc_sql('day','timestamp')
qs = qs.extra({'date':truncate_date})
return qs.values('date').annotate(Sum('amount')).order_by('date')

来自 Django: Group by date (day, month, year)

它工作正常,但是返回的 date 是一个字符串而不是正确的 datetime.date 我不能使用 {{date|date: format}} 在模板中。原来的发件人 (Oli) 似乎也有同样的问题。尽管回答的人说它适用于 postgres,但我在 SQLite 上没有取得任何成功。

是否可以在查询或模板中将字符串转换为日期时间。还是我必须遍历所有条目?

很抱歉在一个单独的趋势中发帖,但我没有足够的权限只能在原始趋势中发表评论。

最佳答案

您可以尝试使用 regroup在模板级别按月份分组的模板标签。确保您的上下文数据已排序:

{% regroup queryset by date_field|date:"M, Y" as objects_by_month %}
{% for group in objects_by_month %}
    {{ group.grouper }}
    {% for object in group.list %}
        {{ object }}
    {% endfor %}
{% endfor %}

关于python - 在 Django 中按月分组并检索为 datetime.date(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9937381/

相关文章:

python - 如何使用 GenericRelation 的逆函数

javascript - Django 如何将点击的链接文本传递到另一个显示静态图像的 HTML 页面上的 URL?

mysql - MySQL 表上时间段上的选定行

postgresql - 如何在 POSTGRESQL 中从 DATE 中提取年份

python - 为什么 dill 慢?

python - 使用 py2app 时,有没有办法自定义显示的回溯对话框? (或者显示不同的 Cocoa 对话框?)

python - 使用用户定义的类键入提示

python - Django - 实现线程注释的正确方法

python - 在 Python 中使用 root logger 还是 named logger 更好

java - DateTimeFormatter 无效日期在 LocalDateTime.parse 之后得到调整