select_related中指定的非关系字段:“”。选项包括:(无)

时间:2019-02-25 08:24:21

标签: python django django-models django-queryset django-select-related

我有两个来自不同应用程序的模型:

class Measure(models.Model):
    date = models.DateTimeField(default="2018-01-23 15:55")
    average = models.FloatField(default=0)

class Sensor(models.Model):
    measure=models.ForeignKey(Measure, on_delete=models.CASCADE)
    value= models.FloatField(default=0)

我将所有来自传感器的数据称为:

new_context = Sensor.objects.select_related('measure__date')

但是,我收到此错误:

  

django.core.exceptions.FieldError:中提供的非关系字段   select_related:“日期”。选择是:(无)

从文档中,我应该使用select_related而不是prefetch_related,并且调用似乎是连贯的。

我想念什么吗?

1 个答案:

答案 0 :(得分:2)

select_related中,仅应设置ForeignKey的字段。您遇到的问题是date字段是DateTimeField而不是ForeignKey

所以要解决它,只需执行以下操作:

new_context = Sensor.objects.select_related('measure')

您可以在docs中看到使用语法的示例。