select_related 中给出的非关系字段:“ ”。选项是:(none)
Non-relational field given in select_related: ' '. Choices are: (none)
我有两个来自不同应用的模型:
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: Non-relational field given in
select_related: 'date'. Choices are: (none)
根据文档,我应该使用 select_related 而不是 prefetch_related,并且调用似乎是连贯的。
我错过了什么吗?
在 select_related
中,仅应设置 ForeignKey
的字段。在您的情况下,问题是 date
字段是 DateTimeField
而不是 ForeignKey
。
所以为了解决它就这样做:
new_context = Sensor.objects.select_related('measure')
您可以在 docs 中查看使用语法的示例。
我有两个来自不同应用的模型:
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: Non-relational field given in select_related: 'date'. Choices are: (none)
根据文档,我应该使用 select_related 而不是 prefetch_related,并且调用似乎是连贯的。
我错过了什么吗?
在 select_related
中,仅应设置 ForeignKey
的字段。在您的情况下,问题是 date
字段是 DateTimeField
而不是 ForeignKey
。
所以为了解决它就这样做:
new_context = Sensor.objects.select_related('measure')
您可以在 docs 中查看使用语法的示例。