[Answered ]-Django Rest Framework adding 2 numbers

2👍

✅

Since you have a model and you want to list, retrieve and create instances, I would recommend you to use Viewsets. So, it would be sth like:

from rest_framework import viewsets
from rest_framework.decorators import detail_route


class NumViewSet(viewsets.ModelViewSet):
    queryset = Num.objects.all()
    serializer_class = NumSerializer

    # This method will return the sum of num1 and num2
    @detail_route(methods=['get'], permission_classes=[])
    def add_num(self, request, pk=None):
        num = Num.objects.get(pk=pk)
        sum = num.num1 + num.num2
        return HttpResponse(content=sum, status=200)

It’s enough, the class ModelViewSet have list(), retrieve(), create(), update() and destroy() methods that you can override or not.

Your urls.py could be sth like:

from rest_framework import routers

router = routers.SimpleRouter()
router.register(r'num', NumViewSet)
urlpatterns = router.urls

And access the the method add_num() at /num/{pk}/add_num/.

Leave a comment