python - 在 Django ORM 查询中转换日期时间对象
问题描述
我想从日期时间对象中按年份过滤查询集,但不允许使用关键字的方法。因此,以下将引发错误:
a = Activity.objects.filter(start_date.year=2018)
有没有其他方法可以做到这一点?
解决方案
Django 有一个__year
查找 [Django-doc],所以我们可以用双下划线 ( __
) 来写:
Activity.objects.filter(start_date__year=2018)
请注意,日期时间中的日期可能是“时区敏感的”,文档提到:
当
USE_TZ
是True
,日期时间字段在过滤之前转换为当前时区。
因此,这可能会产生功能影响,例如,如果日期时间在一个时区的 2018 年 1 月 1 日 00:01 注册,那么对于另一个时区,这可能不在 2018 年。
推荐阅读
- c# - 在 API 中调用另一个 API 会超时
- html - 无法在 Github 页面上查看 github 项目
- python - 如何编写 ast.NodeTransformer 将 a=1 转换为函数调用 a=variables("a")?
- javascript - 正则表达式:正负前瞻解决方案
- python - Flask:如何以编程方式重新启动 Azure App
- amazon-ec2 - EC2 上的 Gatsby 没有外部连接
- go - 如何在 Go 中模拟 Stripe?
- wix - 在 wix 的 arp 窗口中获取完整版本 01.00.00.0000 而不是版本 1.0.0.0
- php - Ajax 调用不传递 php 变量
- javascript - 在数组中找到两个数字的最佳方法,它们的总和是特定数字