Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save akshar-raaj/943073dfc90ecdca389c6436fb05cd90 to your computer and use it in GitHub Desktop.

Select an option

Save akshar-raaj/943073dfc90ecdca389c6436fb05cd90 to your computer and use it in GitHub Desktop.
Different serializers
@api_view(['GET', 'POST'])
def questions_view(request):
if request.method == 'GET':
questions = Question.objects.all()
serializer = QuestionListPageSerializer(questions, many=True)
return Response(serializer.data)
elif request.method == 'POST':
serializer = QuestionSerializer(data=request.data)
if serializer.is_valid():
question = serializer.save()
serializer = QuestionDetailPageSerializer(question)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
@api_view(['GET', 'PATCH', 'DELETE'])
def question_detail_view(request, question_id):
question = get_object_or_404(Question, pk=question_id)
if request.method == 'GET':
serializer = QuestionDetailPageSerializer(question)
return Response(serializer.data)
elif request.method == 'PATCH':
serializer = QuestionDetailPageSerializer(question, data=request.data, partial=True)
if serializer.is_valid():
question = serializer.save()
return Response(QuestionDetailPageSerializer(question).data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
elif request.method == 'DELETE':
question.delete()
return Response("Question deleted", status=status.HTTP_204_NO_CONTENT)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment