【发布时间】:2013-10-10 08:38:10
【问题描述】:
所以我试图按日期过滤 django 模型。仅使用年、年+月或年+月+day_of_month。我现在使用的策略是这样的:
n.filter(create_date__year=q)
n.filter(create_date__year=q[:4],create_date__month=q[4:6])
n.filter(create_date__year=q[:4],create_date__month=q[4:6],create_date__day=q[6:8])
其中 'q' 是日期字符串,格式分别为 'yyyy'、'yyyymm' 或 'yyyymmdd'。
这工作得很好但是 django 没有考虑时区。 Django 基于 UTC 时间而不是 EDT 进行搜索,这是实际的 datetime 对象设置的。
有没有办法根据特定时区搜索年/月/日?
【问题讨论】:
-
q 是日期时间对象还是实际字符串?
-
变量 q 现在是一个字符串
-
您可能应该使用日期对象,然后使用像 pytz 这样的时区模块来查询数据库。数据库的时区模型自动使用时区,您可以在设置文件中进行设置。
标签: python django date datetime