DJANGO4: names_to_path вызывает FieldError "Cannot resolve keyword '%s' into field. " Почему django не может разрешить ключевое слово 'fatura'?

DJANGO: names_to_path raise FieldError "Cannot resolve keyword '%s' into field. "

Я хочу вернуть набор запросов со всеми связанными записями. Что-то вроде этого:

r = Repasse.objects.filter(fatura__id = 9)

Но я получаю ошибку... django, похоже, не может разрешить 'fatura': names_to_path raise FieldError "Cannot resolve keyword '%s' into field. "

Так что я попробовал этот необработанный запрос:

r = Repasse.objects.raw('SELECT * FROM imob_repasse INNER JOIN imob_fatura ON imob_repasse.id_fatura_id  = imob_fatura.id ')

Он возвращает именно то, что я ищу, возвращает все Repasse, объединенные с Fatura.

Не могу понять, в чем дело.

Модели устанавливаются следующим образом:

class Fatura(models.Model):
    datavencimento = models.DateField(null=True, blank=True)
    valorfaturado = models.DecimalField(max_digits=9, decimal_places=2, null=True, blank=True)

class Repasse(models.Model):
    id_contrato = models.ForeignKey(Contrato, on_delete=models.SET_NULL, blank=True, null=True)  ##RELATIONSHIP##
    id_fatura = models.OneToOneField(Fatura, on_delete=models.SET_NULL, null=True, blank=True)  ##RELATIONSHIP##
    valorrepasse = models.DecimalField(max_digits=9, decimal_places=2, null=True, blank=True)

Не могу понять, что не так. Я полагаю, что необработанный SQL был бы грубой силой... Может это какая-то неправильная настройка? Почему django не может разрешить ключевое слово 'fatura' ?

имя поля вашего реляционного ключа - id_fatura, поэтому вы получаете ошибку имени поля, поэтому используйте запрос типа

r = Repasse.objects.filter(id_fatura_id=9)
Вернуться на верх