Нереляционное поле указано в select_related: ''.Варианты: (нет) - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть две модели из разных приложений:

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 Ответ

0 голосов
/ 25 февраля 2019

В select_related должны быть установлены только поля, которые ForeignKey.В вашем случае проблема в том, что поле date является DateTimeField, а не ForeignKey.

Итак, чтобы решить эту проблему, просто сделайте это:

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

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

...