django 查询时间范围_Django基础(32):按日期与时间范围查询数据及模板中日期时间类型数据的格式化和比较...

虽然老家湖北的新冠肺炎仍然令人担忧,但我们还是要向前看,不要让太多的焦虑影响我们的生活,毕竟瘟疫很快会过去,而生活还是要继续。小编我今天总结了如何在Django视图与模板中处理日期与时间类型(DateTime)数据, 比如视图中按日期时间查询数据以及在模板中进行日期时间类型数据的格式化与计算。

Django视图中按日期与时间查询数据

假如我们有如下一个Article文章模型,包含有发布日期pub_date这个字段。

class Article(models.Model):

"""Article Model"""

pub_date = models.DateTimeField('Publish date')

比如我们想查询2020年1月1日以后已发表的文章,我们可以按如下操作。除了等于=,Django对于日期时间类型字段的数据查询还支持gt(greater than,大于), lt (less than,小于), gte (greater than or equal,大于或等于) 及lte(less than or equal,小于或等于),

Article.objects.filter(pub_date__gt=datetime.date(2020, 1, 1))

我们也可以按年份或月份查询2019年发布的全部文章,如下所示。我们只需要在相应字段使用双划线__连接year或month即可。

Article.objects.filter(pub_date__year=2019)

与当前时间进行比较,查询未来发布文章。注意这里没有使用datetime.datetime.now(),这是因为一但你设置了时间,便有一个包含时区的

你可能感兴趣的:(django,查询时间范围)