Skip to content

Instantly share code, notes, and snippets.

@hemanth-sp
Created February 3, 2021 16:55
Show Gist options
  • Save hemanth-sp/f580ce10ca0dac1e92fbd159e71784db to your computer and use it in GitHub Desktop.
Save hemanth-sp/f580ce10ca0dac1e92fbd159e71784db to your computer and use it in GitHub Desktop.

Revisions

  1. hemanth-sp created this gist Feb 3, 2021.
    40 changes: 40 additions & 0 deletions views.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,40 @@
    from curd.serializers import StudentSerializers
    from curd.models import Student
    from rest_framework import status
    from rest_framework.response import Response
    from rest_framework.decorators import api_view
    from django.shortcuts import get_object_or_404


    @api_view(['GET', 'POST'])
    def students_list_or_create(request):
    if request.method == "GET":
    students_qs = Student.objects.all()
    student_serializers = StudentSerializers(students_qs, many=True)
    return Response(student_serializers.data, status=status.HTTP_200_OK)
    else:
    student_serializers = StudentSerializers(data=request.data)
    student_serializers.is_valid(raise_exception=True)
    student_serializers.save()
    return Response(student_serializers.data, status=status.HTTP_201_CREATED)


    @api_view(['GET', 'PUT', 'DELETE'])
    def students_get_or_update(request, pk):
    student = get_object_or_404(Student, id=pk)
    if request.method == "GET":
    student_serializers = StudentSerializers(student)
    return Response(student_serializers.data, status=status.HTTP_200_OK)
    if request.method == "PUT":
    student_serializers = StudentSerializers(instance=student, data=request.data)
    student_serializers.is_valid(raise_exception=True)
    student_serializers.save()
    return Response(student_serializers.data, status=status.HTTP_200_OK)
    if request.method == "DELETE":
    student.delete()
    return Response({'msg': 'done'}, status=status.HTTP_204_NO_CONTENT)

    urlpatterns = [
    path('students', students_list_or_create, name="students_list_or_create"),
    path('students/<int:pk>/', students_get_or_update, name="students_get_or_update"),
    ]