带有时间戳的 Django 过滤器模型

Lec*_*ico 2 django timestamp model filter

我有以下型号:

class User(models.Model):
    id = models.CharField(max_length=10, primary_key=True)

class Data(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    timestamp = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)

给定一个用户,我想知道如何使用时间戳进行过滤。例如:

从现在到 1 小时前从 user1 获取数据。

我有当前的时间戳now = time.time(),也有 1 小时前使用hour_ago = now-3600

我想获取在这两个值之间具有时间戳的数据。

Nis*_*ede 6

使用range获取两个值之间的数据。

您可以在 SQL 中可以使用 BETWEEN 的任何地方使用范围——日期、数字甚至字符。

例如

Data.objects.filter(timestamp__range=(start, end))
Run Code Online (Sandbox Code Playgroud)

来自文档:

import datetime 
start_date = datetime.date(2005, 1, 1) 
end_date = datetime.date(2005, 3, 31) 
Entry.objects.filter(pub_date__range=(start_date, end_date))  
Run Code Online (Sandbox Code Playgroud)