47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
from rest_framework import routers
|
|
from rest_framework.routers import DynamicDetailRoute, DynamicListRoute, Route
|
|
|
|
|
|
class DefaultRouter(routers.DefaultRouter):
|
|
routes = [
|
|
# List route.
|
|
Route(
|
|
url=r'^{prefix}{trailing_slash}$',
|
|
mapping={
|
|
'get': 'list',
|
|
'post': 'create',
|
|
# Allow PUT as create
|
|
'put': 'create_or_update',
|
|
},
|
|
name='{basename}-list',
|
|
initkwargs={'suffix': 'List'}
|
|
),
|
|
# Dynamically generated list routes.
|
|
# Generated using @list_route decorator
|
|
# on methods of the viewset.
|
|
DynamicListRoute(
|
|
url=r'^{prefix}/{methodname}{trailing_slash}$',
|
|
name='{basename}-{methodnamehyphen}',
|
|
initkwargs={}
|
|
),
|
|
# Detail route.
|
|
Route(
|
|
url=r'^{prefix}/{lookup}{trailing_slash}$',
|
|
mapping={
|
|
'get': 'retrieve',
|
|
'put': 'update',
|
|
'patch': 'partial_update',
|
|
'delete': 'destroy'
|
|
},
|
|
name='{basename}-detail',
|
|
initkwargs={'suffix': 'Instance'}
|
|
),
|
|
# Dynamically generated detail routes.
|
|
# Generated using @detail_route decorator on methods of the viewset.
|
|
DynamicDetailRoute(
|
|
url=r'^{prefix}/{lookup}/{methodname}{trailing_slash}$',
|
|
name='{basename}-{methodnamehyphen}',
|
|
initkwargs={}
|
|
),
|
|
]
|