以DB表示的记录的日期/时间以UTC格式存储。模型是这样的:
class Activity(models.Model):
deal = models.ForeignKey(Deal)
user_of_action = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
description = models.TextField()
affected_fields = jsonfield.JSONField(default={})
init_time = models.TimeField(default=datetime.datetime.utcnow, editable=False)
init_date = models.DateField(default=datetime.datetime.utcnow, editable=False)
项目使用Django REST框架,现在需要在考虑时区的特定日期(而不是范围)之前过滤记录。也就是说,在用户的请求时区中,过滤器'init_date‘由AngularJS发送(不太确定确切程度),后端给出相应数据的响应。因此,在任何情况下,正如我所看到的,挑战是一些记录将不会包含在响应中,仅仅因为它们没有过滤器'init_date‘。有什么办法可以达到这种理想的行为吗?
发布于 2016-04-10 23:43:46
假设东京的一个用户(UTC+9)正在请求2016-03-17年间的数据。这是一个范围:2016-03-17 00:00:00 +0900
到2016-03-17 23:59:59 +0900
。因此,您所需要做的就是在访问数据库之前将这些开始日期和结束日期转换为UTC:2016-03-16 15:00:00
到2016-03-17 14:59:59
。
编辑:重读你的问题,你的意思是什么?
因此,在任何情况下,正如我所看到的,挑战是一些记录将不会包含在响应中,仅仅因为它们没有过滤器'init_date‘。有什么办法可以达到这种理想的行为吗?
有些记录怎么没有init_date
值集?你想要的行为是什么?
https://stackoverflow.com/questions/36542038
复制