Reputation: 81
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
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
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