Я занимаюсь разработкой веб-системы с использованием Django 1.11 и текущей версии Django Rest Framework, которая является 3.8.2.
У меня возникла проблема при обслуживании JSON моих моделей в этом проекте.Мне нужно передать JSON, который содержит определенный атрибут.
Я приведу пример моего serializers.py, чтобы облегчить понимание моей проблемы.
class LikertSerializerModel(serializers.ModelSerializer):
class Meta:
model = Likert
fields = ('id', 'escala')
class RespostaSerializerModel(serializers.ModelSerializer):
likerts = LikertSerializerModel(many = True, read_only = True)
class Meta:
model = Resposta
fields = ('id', 'resposta','tipo', 'foto', 'pergunta', 'qtd_escolhida', 'classificacao_escala', 'data', 'likerts')
class PerguntaSerializerModel(serializers.ModelSerializer):
respostas = RespostaSerializerModel(read_only=True ,many=True)
class Meta:
model = Pergunta
fields = ('id', 'pergunta', 'tipo_questao', 'questionario', 'respondida', 'data_inicial', 'data_final',
'obrigatoria', 'outros', 'ordem', 'qtd_max_caracteres', 'respostas')
class QuestionarioSerializerModel(serializers.ModelSerializer):
entrevistadores = UsuarioSerializer(many = True, read_only = True)
sub_administrador = UsuarioSerializer(read_only= True)
perguntas = PerguntaSerializerModel(many = True, read_only = True)
class Meta:
model = Questionario
fields = ('id', 'titulo', 'descricao', 'data', 'duracao', 'localizacao', 'sub_administrador', 'entrevistadores', 'perguntas')
ПРОБЛЕМА: Видите, в PerguntaSerializerModel у меня есть это поле "respostas".И дело в том, что я хочу только передать этому объекту Pergunta, объектам Resposta, которые имеют атрибут «tipo» со значением «alt» и связаны с этим объектом Pergunta.
PS: Если вам нужно объяснение того, как эти классы связаны, то здесь (мы можем игнорировать объект Лайкерта, поскольку он бесполезен для проблемы):
A Resposta Object isс помощью ForeignKey к одному объекту Pergunta , а объект Pergunta связан с помощью ForeignKey к одному объекту вопросника .
A Объект Questionario может иметь один или несколько Объектов Pergunta и Объект Pergunta может иметь один или несколько Resposta Objects
Когда вы выполняете GET в оставшемся URL-адресе, окончательный JSON начнется с объекта Questionario и будет каскадироваться до последнего объекта Pergunta.
Пожалуйста, помогите мне найти ответ, я не смог его найтив документации REST, потому что я незнаю, что мне нужно искать.
С уважением.