对具有复合主键[Django]的表使用“select_related”
Django有没有一种方法可以支持组合主键的组合对具有复合主键[Django]的表使用“select_related”,django,django-models,Django,Django Models,Django有没有一种方法可以支持组合主键的组合select_related或prefetch_related 我有一个带有复合主键(device_id,created)的记录表,其模式如下(简化): 记录属于设备,其建模如下(简化): 我希望运行一个查询,该查询将返回一个设备列表,但对于每个设备也是如此 包含最后一条记录 理论上,这应该是这样的: Device.objects.filter(...).select_related("car", "last_record") 但显然“last_
select_related
或prefetch_related
我有一个带有复合主键(device_id,created)的记录表,其模式如下(简化):
记录属于设备,其建模如下(简化):
我希望运行一个查询,该查询将返回一个设备列表,但对于每个设备也是如此
包含最后一条记录
理论上,这应该是这样的:
Device.objects.filter(...).select_related("car", "last_record")
但显然“last_record”不是外键,因为Records包含Django不支持的复合主键
除了用原始sql重写查询外,最好的方法是什么?是否有合理的方法覆盖与处理组合键相关的select_?这与此有关,不幸的是,似乎仍然没有解决此问题的方法。
class Device(models.Model):
car = models.ForeignKey("cars.Car", on_delete=models.CASCADE)
last_record_at = models.DateTimeField(null=True, blank=True)
Device.objects.filter(...).select_related("car", "last_record")