我希望获取以下模型中,所有在指定时间段内transition_date字段有历史记录的设备:
class History(models.Model):
device = models.ForeignKey(DeviceModel, to_field='id')
transition_date = models.DateTimeField()
class Meta:
db_table = 'History'
class DeviceModel(models.Model):
id = models.IntegerField()
name = models.CharField()
class Meta:
db_table = 'Devices'
我有这样一段代码,可以筛选指定的时间间隔:
devices = DeviceModel.objects.filter(history__transition_date__range=(startDate, endDate))
这将给我与指定范围内的transition_date
相对应的History
表中的行数。过滤函数在device id
上执行DeviceModel
和History
之间的INNER JOIN,仅检索DeviceModel
字段。我的问题是如何在连接设备ID时同时从History
和DeviceModel
中检索数据。我不想编写自定义SQL查询。
[{'history__transition_date':whatever, 'name':whatever},{'history__transition_date':whatever, 'name':whatever}, ...]
- AlvaroAV