Routers
Routers, when used along with a viewset, take care of automatically creating the required URL endpoints for the viewset. This is because a single viewset is accessed at different URLs. For example, in the preceding UserViewSet
, you would access a list of users at the URL /api/users/
, and a specific user record at the URL /api/users/123
, where 123
is the primary key of that user record. Here is a simple example of how you might use a router in the context of the previously defined UserViewSet
:
from rest_framework import routers router = routers.SimpleRouter() router.register(r'users', UserViewSet) urlpatterns = router.urls
Now, let's try to combine the concepts of routers and viewsets in a simple exercise.
Exercise 12.04: Using ViewSets and Routers
In this exercise, we will combine the existing views to create a viewset and create the required routing for the viewset:
- Open the file
bookr/reviews/serializers.py
, remove the pre-existing code...