【发布时间】:2014-09-17 12:19:09
【问题描述】:
对于以下模型,我想检索在历史表中具有指定间隔之间的 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))
这给了我与History 表在指定范围内的transition_date 一样多的行。
过滤器函数在device id 上执行DeviceModel 和History 之间的INNER JOIN,仅检索DeviceModel 字段。我的问题是如何同时从History 和DeviceModel 检索数据,同时将它们与设备ID 上的filter/select_related 一起加入。
我宁愿不编写自定义 SQL 查询。
【问题讨论】:
标签: django django-models