у меня 3 модели. Question
, Choice
и Cover
. Вопрос может иметь много вариантов, и каждый вариант может иметь только 1 обложку. Я реализовал Question
и Choice
в качестве сериализаторов, и он успешно работал, теперь я пытаюсь добавить Cover
. Вот что у меня есть:
class CreateQuestionSerializer(serializers.ModelSerializer):
choice_set = ChoiceSerializer(many=True)
class Meta:
model = Question
fields = ('user', 'status', 'choice_set')
def create(self, validated_data):
choices_validated_data = validated_data.pop('choice_set')
question = Question.objects.create(**validated_data)
choices_serializer = self.fields['choice_set']
for choice in choices_validated_data:
choice['question'] = question
choices_serializer.create(choices_validated_data)
return question
class ChoiceSerializer(serializers.ModelSerializer):
choice_cover = ChoiceCoverSerializer(many=False)
class Meta:
model = Choice
fields = ('choice', 'choice_cover')
class ChoiceCoverSerializer(serializers.ModelSerializer):
class Meta:
model = ChoiceCover
fields = ('cover',)
Когда я пытаюсь сохранить данные следующим образом:
{
"user": 179,
"question": "Who will win the election?",
"choice_set": [
{
"choice": "Lorem",
"choice_cover": "C4FF33"
},
{
"choice": "Ipsum",
"choice_cover": "FF5733"
}
]
}
Я получаю следующую ошибку:
{
"choice_set": [
{
"choice_cover": {
"non_field_errors": [
"Invalid data. Expected a dictionary, but got str."
]
}
},
{
"choice_cover": {
"non_field_errors": [
"Invalid data. Expected a dictionary, but got str."
]
}
}
]
}
Как я могу исправить это?