Возможно ли вернуть GET-запрос после сохранения post-запроса в базе данных?

Я пытался вернуть GET-ответ после того, как был выполнен пост-запрос и данные были сохранены в БД. Вместо сериализованных проверенных данных, которые возвращаются вызывающему api.

Для упрощения. RN данные, которые возвращаются через пост-запрос - это проверенный сериализатором ответ вместе с кодом 201.

Я хотел бы вместо этого вернуть то, что было бы возвращено, если бы запрос get был сделан на том же URL. То есть, сериализатор Pollquestion.

Это позволило бы сохранить еще одну обработку GET-запросов на фронтенде

Вот сериализаторы:

class PollVoteSerializer(serializers.ModelSerializer):

    class Meta:
        model = PollVote
        fields = '__all__'


class PollAnswerSerializer(serializers.ModelSerializer):

    is_correct_answer = serializers.SerializerMethodField()
    answer_votes = serializers.SerializerMethodField(read_only=True)

    class Meta:
        model = PollAnswer
        fields = ('id', 'answer', 'is_correct_answer', 'answer_votes', )

    def get_is_correct_answer(self, object):

        if object.question.is_finished:
            return object.is_correct

        return False

    def get_answer_votes(self, object):
        return object.answer_vote.count()


class PollQuestionSerializer(serializers.ModelSerializer):

    choices = PollAnswerSerializer(many=True, read_only=True)
    total_votes = serializers.SerializerMethodField(read_only=True)
    user_voted = serializers.SerializerMethodField(read_only = True)

    class Meta:
        model = PollQuestion
        fields = ['id', 'question_name', 'created_by',
                  'is_finished', 'total_votes','user_voted', 'choices', ]

    def get_total_votes(self, question_vote):
        c = PollVote.objects.filter(question=question_vote).count()
        return question_vote.question_vote.all().count()

    def get_user_voted(self, object):
        user_id = self.context['request'].user.id    
        return PollVote.objects.filter(question__id = object.id, voted_by = user_id).exists()

Вот вид.

class GetPoll(viewsets.ModelViewSet):

def get_serializer_class(self):
    if self.action == 'create':
        return PollVoteSerializer
    else:
        return PollQuestionSerializer
        
queryset = PollQuestion.objects.all().order_by('-id')
authentication_classes = (authentication.TokenAuthentication,)
permission_classes = [IsAuthenticated]
pagination_class = StandardResultsSetPagination

Прошу прощения за крайне неумелое форматирование. Я довольно новичок в Stack Overflow.

Вернуться на верх