Нереляционное поле указано в 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: 'date'. Варианты: (нет)
из документации я должен использовать select_related вместо prefetch_related, и вызов кажется последовательным.
Я что-то пропустил?
1 ответ
Решение
В select_related
только поля, которые ForeignKey
должен быть установлен. В твоем случае проблема в том что date
поле является DateTimeField
и не ForeignKey
,
Итак, чтобы решить это, просто сделайте это:
new_context = Sensor.objects.select_related('measure')
Вы можете увидеть примеры использования синтаксиса в документах.