Возможно ли вернуть 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.