Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对具有复合主键[Django]的表使用“select_related”_Django_Django Models - Fatal编程技术网

对具有复合主键[Django]的表使用“select_related”

对具有复合主键[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_

Django有没有一种方法可以支持组合主键的组合
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")