class CustomRouter(DefaultRouter): routes = [ # List route. Route(url=r'^{prefix}{trailing_slash}$', mapping={ 'get': 'list', 'post': 'create' }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), # Dynamically generated list routes. Generated using # @action(detail=False) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=False, initkwargs={}), # Detail route. Route(url=r'^{prefix}/{lookup}{trailing_slash}$', mapping={ 'get': 'retrieve', 'put': 'partial_update', 'post': 'update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'}), # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=True, initkwargs={}), ]
class CustomReadOnlyRouter(SimpleRouter): """ A router for read-only APIs, which doesn't use trailing slashes. """ routes = [ Route(url=r'^{prefix}/$', mapping={ 'get': 'list', 'post': 'create' }, detail=False, name='{basename}-list', initkwargs={'suffix': 'List'}), DynamicRoute(url=r'^{prefix}/{url_path}/$', name='{basename}-{url_name}', detail=False, initkwargs={}), Route(url=r'^{prefix}/{lookup}/$', mapping={ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Detail'}), DynamicRoute(url=r'^{prefix}/{url_path}/{lookup}/$', name='{basename}-{url_name}', detail=True, initkwargs={}) ]
class SensorThingsRouter(DefaultRouter): """A router that has the lookup field in parentheses.""" APIRootView = SensorThingsAPI routes = [ Route(url=r'^{prefix}$', mapping={ 'get': 'list', 'post': 'create' }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), DynamicRoute(url=r'^{prefix}/{url_path}$', name='{basename}-{url_name}', detail=False, initkwargs={}), Route(url=r'^{prefix}\({lookup}\)$', mapping={ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'}), DynamicRoute(url=r'^{prefix}\({lookup}\)/{url_path}$', name='{basename}-{url_name}', detail=True, initkwargs={}), ]
class ListPatchRouter(ExtendedSimpleRouter): """A router that allows performing PATCH requests against the `list` endpoint This router is used in order to provide API endpoints that respond to PATCH requsts against a viewset's `list` endpoint. It is useful for situations where it is necessary to perform a batch update of multiple resources. For a use case, consider the selection of which remote resources should be harvestable by the local GeoNode: - User is shown a (paginated) list of resources that are available on the remote service - User must now choose which of these harvestable resources should be harvested - Instead of forcing the user to make multiple PATCH requests to each harvestable resource's detail page in order to set the resource's `should_be_harvested` property, user can perform a PATCH request to `harvesters/{harvester-id}/harvestable-resources` and set multiple resources' `should_be_harvested` at the same time """ routes = [ # List route. Route(url=r'^{prefix}{trailing_slash}$', mapping={ 'get': 'list', 'post': 'create', 'patch': 'update_list', }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), # Dynamically generated list routes. Generated using # @action(detail=False) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=False, initkwargs={}), # Detail route. Route(url=r'^{prefix}/{lookup}{trailing_slash}$', mapping={ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'}), # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=True, initkwargs={}), ]
class CustomRouterRetrieveHasNoParam(SimpleRouter): routes = [ # Detail route. Route( url=r'^/{prefix}$', mapping={ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'} ), Route( url=r'^/{prefix}/create$', mapping={ 'post': 'create' }, name='{basename}-create', detail=False, initkwargs={'suffix': 'Create'} ), Route( url=r'^/{prefix}/list$', mapping={ 'get': 'list', }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'} ), # Dynamically generated list routes. Generated using # @action(detail=False) decorator on methods of the viewset. DynamicRoute( url=r'^/{prefix}/{url_path}$', name='{basename}-{url_name}', detail=False, initkwargs={} ), # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. DynamicRoute( url=r'^/{prefix}/{lookup}/{url_path}$', name='{basename}-{url_name}', detail=True, initkwargs={} ), ]
class CustomDefaultRouter(DefaultRouter): routes = [ # List route. Route( url=r'^{prefix}{trailing_slash}$', mapping={ 'get': 'list', 'post': 'create' }, name='{basename}-list', initkwargs={'suffix': 'List'} ), # Dynamically generated list routes. # Generated using @list_route decorator # on methods of the viewset. DynamicRoute( 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. DynamicRoute( url=r'^{prefix}/{lookup}/{methodname}{trailing_slash}$', name='{basename}-{methodnamehyphen}', initkwargs={} ), Route( url=r'^remote/{prefix}{trailing_slash}$', mapping={ 'get': 'get_requests', 'post': 'post_requests', 'put': 'put_requests', 'delete': 'delete_requests', }, name='{basename}-request', initkwargs={'suffix': 'Request'} ) ]
class NoLookupUpdateRouter(SimpleRouter): """ A router no {loopup} for mine Update https://www.django-rest-framework.org/api-guide/routers/#defaultrouter """ routes = [ # List route. Route( url=r'^{prefix}{trailing_slash}$', mapping={ 'get': 'list', 'post': 'create', 'put': 'update', 'patch': 'partial_update', }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'} ), # Dynamically generated list routes. Generated using # @action(detail=False) decorator on methods of the viewset. DynamicRoute( url=r'^{prefix}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=False, initkwargs={} ), # Detail route. Route( url=r'^{prefix}/{lookup}{trailing_slash}$', mapping={ 'get': 'retrieve', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'} ), # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. DynamicRoute( url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=True, initkwargs={} ), ]
class CustomDefaultRouter(SimpleRouter): """ Default router for APIs that generates routes for GET, POST, PUT and DELETE methods. """ routes = [ # List route. Route(url=r'^{prefix}$', mapping={ 'get': 'list', 'post': 'create' }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), # Detail route. Route(url=r'^{prefix}/{lookup}$', mapping={ 'get': 'retrieve', 'put': 'update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'}), DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}$', name='{basename}-{url_name}', detail=True, initkwargs={}), ]
class WriteOnlyRouter(SimpleRouter): routes = [ DynamicRoute(url=r'^{prefix}/{url_path}$', name='{basename}-{url_name}', detail=True, initkwargs={}), ]
class CustomRouter(DefaultRouter): routes = [ Route(url=r'^{prefix}/getAllWithOutPagination$', mapping={'get': 'list'}, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), Route(url=r'^{prefix}/getOne/{lookup}$', mapping={'get': 'retrieve'}, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Detail'}), Route(url=r'^{prefix}/create$', mapping={'post': 'create'}, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), Route(url=r'^{prefix}/update$', mapping={'post': 'update'}, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Detail'}), Route(url=r'^{prefix}/delete/{lookup}$', mapping={'get': 'destroy'}, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Detail'}), DynamicRoute(url=r'^{prefix}/{url_path}/{lookup}$', name='{basename}-{url_name}', detail=False, initkwargs={}), ]
class JobRouter(SimpleRouter): ''' A dedicated router for UWS services. The main difference is that a POST on an instance maps to update, not PUT. Also actions are removed. ''' routes = [ Route(url=r'^{prefix}$', mapping={ 'get': 'list', 'post': 'create' }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), Route(url=r'^{prefix}/{lookup}$', mapping={ 'get': 'retrieve', 'post': 'update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'}), DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}$', name='{basename}-{url_name}', detail=True, initkwargs={}) ]
class SidekickRouter(NestedDefaultRouter): """Route list URL to detail views""" routes = [ # List route. Route( url=r"^{prefix}{trailing_slash}$", mapping={ "get": "retrieve", "put": "update", "patch": "partial_update", "post": "create", "delete": "destroy", }, name="{basename}-detail", detail=True, initkwargs={"suffix": "Instance"}, ), # Dynamically generated list routes. Generated using # @action(detail=False) decorator on methods of the viewset. DynamicRoute( url=r"^{prefix}/{url_path}{trailing_slash}$", name="{basename}-{url_name}", detail=True, initkwargs={}, ), ]
class MisagoApiRouter(DefaultRouter): include_root_view = False include_format_suffixes = False routes = [ # List route. Route( url=r"^{prefix}{trailing_slash}$", mapping={ "get": "list", "post": "create" }, name="{basename}-list", initkwargs={"suffix": "List"}, detail=False, ), # Dynamically generated list routes. # Generated using @list_route decorator # on methods of the viewset. DynamicRoute( url=r"^{prefix}/{url_path}{trailing_slash}$", name="{basename}-{url_name}", initkwargs={}, detail=False, ), # 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"}, detail=True, ), # Dynamically generated detail routes. # Generated using @detail_route decorator on methods of the viewset. DynamicRoute( url=r"^{prefix}/{lookup}/{url_path}{trailing_slash}$", name="{basename}-{url_name}", initkwargs={}, detail=True, ), ]
class DefaultRouter(SimpleRouter): routes = [ # List route. Route(url=r'^{prefix}{trailing_slash}$', mapping={ 'get': 'list', 'post': 'create' }, name='{basename}.list', detail=False, initkwargs={'suffix': 'List'}), # Dynamically generated list routes. Generated using # @action(detail=False) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$', name='{basename}.{url_name}', detail=False, initkwargs={}), # Detail route. Route(url=r'^{prefix}/{lookup}{trailing_slash}$', mapping={ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }, name='{basename}.detail', detail=True, initkwargs={'suffix': 'Instance'}), # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$', name='{basename}.{url_name}', detail=True, initkwargs={}), ] def __init__(self, routes: Optional[List[RouteArg]] = None, trailing_slash=True, *args: List[Any], **kwargs: Dict[str, Any]): super().__init__(trailing_slash=trailing_slash, *args, **kwargs) if routes: route: RouteArg for route in routes: self.register(*route)
class MyOwnRouter(SimpleRouter): routes = [ Route(url=r'^{prefix}{trailing_slash}$', mapping={ 'get': 'list', 'post': 'create' }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), Route(url=r'^{prefix}/(?P<ordering>[lp]){trailing_slash}$', mapping={ 'get': 'get_n', 'post': 'create' }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), Route( url= r'^{prefix}/(?P<ordering>[lp])/(?P<start>[0-9]+)/(?P<end>[0-9]+){trailing_slash}$', mapping={ 'get': 'get_n', 'post': 'create' }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=False, initkwargs={}), Route(url=r'^{prefix}/{lookup}{trailing_slash}$', mapping={ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'}), DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=True, initkwargs={}), ]
class SimpleRouter(BaseRouter): """ Custom Router that maps viewset methods to its methodnamehyphen variant. For example: Method do_some_stuff will be translated to url resource/do-some-stuff """ routes = [ # List route. Route(url=r'^{prefix}{trailing_slash}$', mapping={ 'get': 'list', 'post': 'create' }, detail=False, name='{basename}-list', initkwargs={'suffix': 'List'}), # Dynamically generated list routes. # Generated using @action decorator # on methods of the viewset with param # detail=False. DynamicRoute(url=r'^{prefix}/{url_path}$', name='{basename}-{url_name}', detail=False, initkwargs={}), # Detail route. Route(url=r'^{prefix}/{lookup}{trailing_slash}$', mapping={ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }, detail=True, name='{basename}-detail', initkwargs={'suffix': 'Instance'}), # Dynamically generated detail routes. # Generated using @action decorator # on methods of the viewset with param # detail=True. DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}$', name='{basename}-{url_name}', detail=True, initkwargs={}), ]
class BaseBoneSimpleRouter(SimpleRouter): routes = [ # List route. Route( url=r"^{prefix}{trailing_slash}$", mapping={ "get": "list", "post": "create" }, name="{basename}-list", detail=False, initkwargs={"suffix": "List"}, ), # Dynamically generated list routes. Generated using # @action(detail=False) decorator on methods of the viewset. DynamicRoute( url=r"^{prefix}/{url_path}{trailing_slash}$", name="{basename}-{url_name}", detail=False, initkwargs={}, ), # Detail route. Route( url=r"^{prefix}/{lookup}{trailing_slash}$", mapping={ "post": "retrieve", "put": "update", "patch": "partial_update", "delete": "destroy", }, name="{basename}-detail", detail=True, initkwargs={"suffix": "Instance"}, ), # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. DynamicRoute( url=r"^{prefix}/{lookup}/{url_path}{trailing_slash}$", name="{basename}-{url_name}", detail=True, initkwargs={}, ), ]
class SocialRouter(SimpleRouter): # Views for creating and retrieving social content: comments, votes/likes routes = [ DynamicRoute( url=r"^{prefix}/{lookup}/{url_path}{trailing_slash}$", name="{basename}-{url_name}", detail=False, initkwargs={}, ) ]
class CustomReadOnlyRouter(SimpleRouter): """ A router for read-only APIs, which doesn't use trailing slashes. """ routes = [ DynamicRoute(url=r'^{url_path}$', name='{url_name}', detail=True, initkwargs={}) ]
class PathRouter(SimpleRouter): """ A router for read-only APIs, which doesn't use trailing slashes. """ routes = [ DynamicRoute(url=r'^{prefix}/{url_path}/{lookup}\.csv$', name='{basename}-{url_name}', detail=True, initkwargs={}) ]
class TusAPIRouter(SimpleRouter): routes = [ # List route. get_list_route(), # Dynamically generated list routes. # Generated using @list_route decorator # on methods of the viewset. DynamicRoute(url=r'^{prefix}/{methodname}{trailing_slash}$', name='{basename}-{methodnamehyphen}', detail=False, initkwargs={}), # Detail route. get_detail_route(), # Dynamically generated detail routes. # Generated using @detail_route decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{lookup}/{methodname}{trailing_slash}$', name='{basename}-{methodnamehyphen}', detail=True, initkwargs={}), ]
class MinorRouter(DefaultRouter): """The DefaultRouter replaced patch method with post.""" routes = [ # List route. Route(url=r'^{prefix}{trailing_slash}$', mapping={ 'get': 'list', 'post': 'create' }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), # Dynamically generated list routes. Generated using # @action(detail=False) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=False, initkwargs={}), # Detail route. Route( url=r'^{prefix}/{lookup}{trailing_slash}$', mapping={ 'get': 'retrieve', # 'patch': 'update', # seems that we don't need this.. 'put': 'partial_update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'}), # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=True, initkwargs={}), ] def __init__(self, *args, **kwargs): trailing_slash = kwargs.pop('trailing_slash', False) super().__init__(trailing_slash=trailing_slash, *args, **kwargs)
class SimpleRouter(DRFSimpleRouter): routes = [ # List route. /资源s/ Route( url=r'^{prefix}{trailing_slash}$', mapping={ 'get': 'list', # 群查 'post': 'create', # 单增、群增 'put': 'multiple_update', # 群整改 'patch': 'multiple_partial_update', # 群局改 'delete': 'multiple_destroy', # 群删 }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), # Dynamically generated list routes. Generated using # @action(detail=False) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=False, initkwargs={}), # Detail route. /资源s/(pk)/ Route( url=r'^{prefix}/{lookup}{trailing_slash}$', mapping={ 'get': 'retrieve', # 单查 'put': 'update', # 单整改 'patch': 'partial_update', # 单局改 'delete': 'destroy' # 单删 }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'}), # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=True, initkwargs={}), ]
class DetailListPostRouter(SimpleRouter): ''' 自定义路由器,增加detail POST 方法url,detail GET方法和GET方法同为list ''' routes = [ # List route. Route(url=r'^{prefix}{trailing_slash}$', mapping={ 'get': 'list', 'post': 'create' }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), # Dynamically generated list routes. Generated using # @action(detail=False) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=False, initkwargs={}), # Detail route. Route(url=r'^{prefix}/{lookup}{trailing_slash}$', mapping={ 'get': 'list_detail', 'post': 'create_detail', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'}), # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=True, initkwargs={}), ]
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', detail=False, initkwargs={'suffix': 'List'}), # Dynamically generated list routes. # Generated using @list_route decorator # on methods of the viewset. DynamicRoute(url=r'^{prefix}/{lookup}{trailing_slash}$', name='{basename}-list', detail=False, initkwargs={}), # Detail route. Route(url=r'^{prefix}/{lookup}{trailing_slash}$', mapping={ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'}), # Dynamically generated detail routes. # Generated using @detail_route decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{lookup}{trailing_slash}$', name='{basename}-detail', detail=True, initkwargs={}), ]
class OGCRouter(DefaultRouter): """ A WFS3 compliant router for read-only APIs, which doesn't use trailing slashes. """ routes = [ Route(url=r'^{prefix}{trailing_slash}$', mapping={ 'get': 'list', 'post': 'create' }, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), # Dynamically generated list routes. Generated using # @action(detail=False) decorator on methods of the viewset. DynamicRoute(url=r'^{prefix}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=False, initkwargs={}), # Detail route. Route(url=r'^{prefix}/items/{lookup}{trailing_slash}$', mapping={ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Instance'}), # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. DynamicRoute( url=r'^{prefix}/items/{lookup}/{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=True, initkwargs={}), ]
class AuthRouter(DefaultRouter): routes = [ # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. Route(url=r'^{prefix}{trailing_slash}$', mapping={}, name='', detail=False, initkwargs={}), DynamicRoute(url=r'^{url_path}{trailing_slash}$', name='{basename}-{url_name}', detail=True, initkwargs={}) ]
class UserRouter(SimpleRouter): """ A router for user api routes """ routes = [ Route(url=r'^{prefix}$', mapping={'get': 'retrieve'}, name='{basename}-detail', detail=False, initkwargs={'suffix': 'Detail'}), DynamicRoute(url=r'^{prefix}/{url_path}$', name='{basename}-{url_name}', detail=False, initkwargs={}) ]
class MultiFactorVerifierRouter(SimpleRouter): """ Custom router for the MultiFactorViewSet. This router isn't really necessary such as the documentation already stated: 'Implementing a custom router isn't something you'd need to do very often ...' But it looks much cleaner and is use full for subclassing the view. see: https://www.django-rest-framework.org/api-guide/routers/#custom-routers """ routes = [ # General routes Route(url=r"^{prefix}{trailing_slash}$", mapping={ "get": "overview", }, name="{basename}-overview", detail=False, initkwargs={"suffix": "List"}), Route(url=r"^{prefix}/{lookup}{trailing_slash}$", mapping={ "get": "retrieve", "post": "verify", }, name="{basename}-specific", detail=True, initkwargs={"suffix": "Instance"}), Route(url=r"^{prefix}/{lookup}/dispatch{trailing_slash}$", mapping={ "post": "dispatch_challenge", }, name="{basename}-dispatch", detail=True, initkwargs={"suffix": "Instance"}), # Dynamically generated detail routes. Generated using # @action(detail=True) decorator on methods of the viewset. DynamicRoute(url=r"^{prefix}/{lookup}/{url_path}{trailing_slash}$", name="{basename}-{url_name}", detail=True, initkwargs={}), ]
class DefaultRouter(SimpleRouter): routes = [ Route(url=r'^{prefix}$', mapping={'get': 'list'}, name='{basename}-list', detail=False, initkwargs={'suffix': 'List'}), Route(url=r'^{prefix}/{lookup}$', mapping={'get': 'retrieve'}, name='{basename}-detail', detail=True, initkwargs={'suffix': 'Detail'}), DynamicRoute(url=r'^{prefix}/{lookup}/{url_path}$', name='{basename}-{url_name}', detail=True, initkwargs={}) ]