Raul Delgado de Luna
Raul Delgado de Luna

Reputation: 81

how can I get details from restful api django?

I am pretty new with restful Django, but I am not new with Django framework at all, but I want to create an endpoint where I can grab customers by id e.g. detail/<id> customers/ to grab all

serializers.py

class CustomersSerializer(serializers.ModelSerializer):

    class Meta:
        model = Customer
        fields = '__all__'



views.py

class CustomerViewSet(mixins.ListModelMixin,
                      viewsets.GenericViewSet):
    """
    get all 
    """
    queryset = Customer.objects.all()
    serializer_class = CustomersSerializer

 urls.py

router = DefaultRouter()
router.register(r'customer', CustomerViewSet) # get all 
router.register(r'detail', DetailViewSet) # detail/<id> 
class DetailViewSet(...):
   ????

Upvotes: 0

Views: 160

Answers (2)

satyajit
satyajit

Reputation: 694

views.py :

from rest_framework import generics

class CustomerDetailAPIView(generics.RetrieveAPIView):
    """
    get all 
    """
    queryset = Customer.objects.all()
    serializer_class = CustomersSerializer
    lookup_field = 'pk'

urls.py :

from django.urls import path
from .views import (CustomerDetailAPIView)

urlpatterns = [

    path('customer_detail/<int:pk>',CustomerDetailAPIView.as_view()),

]

Upvotes: 0

omid
omid

Reputation: 842

You don't need another ViewSet for retrieve. viewsets.ViewSet itself has two methods list(self, request) and retrieve(self, request, pk=None)

Upvotes: 0

Related Questions