Я пытаюсь сделать Django Rest Framework вернуть мне отношение ко многим, построенное с ключевым словом through
. Однако я получаю сообщение об ошибке и не знаю, что случилось.AttributeError при сериализации отношения с таблицей «через»
Ошибки я получаю:
Got AttributeError при попытке получить значение поля
step_number
на сериализатореStepInfoSerializer
. Поле сериализатора может быть названо неправильно и не соответствует никакому атрибуту или ключу на экземпляреStep
. Исходный текст исключений: Объект «Шаг» не имеет атрибута «step_number» .
Вот моя модель:
class Step(BaseModel):
description = models.TextField(null=False, blank=False)
class StepInfo(BaseModel):
recipe = models.ForeignKey('Recipe')
step = models.ForeignKey(Step)
step_number = models.IntegerField()
class Recipe(BaseModel):
title = models.CharField(max_length=100)
steps = models.ManyToManyField(Step, through='StepInfo')
И реализация сериализаторов:
class StepInfoSerializer(serializers.HyperlinkedModelSerializer):
description = serializers.CharField(source="step.description")
class Meta:
model = StepInfo
fields = ('id',
'step_number',
'description')
class RecipeSerializer(serializers.HyperlinkedModelSerializer):
steps = StepInfoSerializer(many=True, read_only=True)
class Meta:
model = Recipe
fields = ('id',
'steps')
Может кто-нибудь пролить свет на эту проблему? Я бы очень признателен! Спасибо!
Это один из лучших ответов, который я когда-либо получал от переполнения стека. Я многому научился. Благодаря! – RaffAl