В вашем сериализаторе вы ссылаетесь на model = Impreza
:
...
class Meta:
model = Impreza
fields = ('year', 'tytul', 'desc')
Вы ссылаетесь на класс Impreza
, который на самом деле имеет поля 'year'
и 'tytul'
.Класс Impreza
также содержит переменную с именем impreza_id
.Поскольку ваш сериализатор ищет элементы в Impreza
, а не Description
, Django помечается галочкой и сообщает, что не может найти impreza_id
.
Изменение класса, на который вы ссылаетесь, не решит вашпроблема, хотя.Если вы хотите иметь отношение один ко многим, вы будете использовать ForeignKey
.
class Description(models.Model):
year = models.IntegerField()
impreza = models.ForeignKey(Impreza, on_delete=models.CASCADE)
Все эти вещи говорят, Я бы рассмотрел другую архитектурув целом.Вы создаете очень специфический класс, который вполне может быть модульным и многоразовым.Подумайте только о том, чтобы сделать это:
class Vehicle(models.Model):
year = models.PositiveSmallIntegerField()
make = models.CharField(max_length=64)
model = models.CharField(max_length=64)
description = models.CharField(max_length=1024)
Надежный вариант использования отношений «один ко многим»:
class Owner(models.Model):
first_name = models.CharField(max_length=64)
last_name = models.CharField(max_length=64)
age = models.PositiveSmallIntegerField()
class Vehicle(models.Model):
owner = models.ForeignKey(Owner, on_delete=models.CASCADE)
year = models.PositiveSmallIntegerField()
make = models.CharField(max_length=64)
model = models.CharField(max_length=64)
description = models.CharField(max_length=1024)
В этом случае у одного владельца может быть много транспортных средств.
Ура!