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)