Нереляционное поле указано в 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')

Вы можете увидеть примеры использования синтаксиса в документах.

Другие вопросы по тегам