【发布时间】:2019-05-12 20:28:41
【问题描述】:
我想按年份过滤从日期时间对象中获取的查询集,但不允许使用关键字的方法。因此,以下将引发错误:
a = Activity.objects.filter(start_date.year=2018)
还有其他方法吗?
【问题讨论】:
我想按年份过滤从日期时间对象中获取的查询集,但不允许使用关键字的方法。因此,以下将引发错误:
a = Activity.objects.filter(start_date.year=2018)
还有其他方法吗?
【问题讨论】:
Django 有一个__year lookup [Django-doc],所以我们可以用 double 下划线 (__) 来写:
Activity.objects.filter(<b>start_date__year</b>=2018)
请注意,日期时间中的日期可能是“时区敏感的”,documentation 提到:
当
USE_TZ为True时,日期时间字段在过滤前转换为当前时区。
因此这可能会产生功能影响,例如,如果日期时间在一个时区的 2018 年 1 月 1 日 00:01 注册,那么对于另一个时区,这可能不在 2018 年。
【讨论】: