apirouter.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from rest_framework.routers import (
  2. DefaultRouter,
  3. DynamicDetailRoute,
  4. DynamicListRoute,
  5. Route,
  6. )
  7. class MisagoApiRouter(DefaultRouter):
  8. include_root_view = False
  9. include_format_suffixes = False
  10. routes = [
  11. # List route.
  12. Route(
  13. url=r"^{prefix}{trailing_slash}$",
  14. mapping={"get": "list", "post": "create"},
  15. name="{basename}-list",
  16. initkwargs={"suffix": "List"},
  17. ),
  18. # Dynamically generated list routes.
  19. # Generated using @list_route decorator
  20. # on methods of the viewset.
  21. DynamicListRoute(
  22. url=r"^{prefix}/{methodnamehyphen}{trailing_slash}$",
  23. name="{basename}-{methodnamehyphen}",
  24. initkwargs={},
  25. ),
  26. # Detail route.
  27. Route(
  28. url=r"^{prefix}/{lookup}{trailing_slash}$",
  29. mapping={
  30. "get": "retrieve",
  31. "put": "update",
  32. "patch": "partial_update",
  33. "delete": "destroy",
  34. },
  35. name="{basename}-detail",
  36. initkwargs={"suffix": "Instance"},
  37. ),
  38. # Dynamically generated detail routes.
  39. # Generated using @detail_route decorator on methods of the viewset.
  40. DynamicDetailRoute(
  41. url=r"^{prefix}/{lookup}/{methodnamehyphen}{trailing_slash}$",
  42. name="{basename}-{methodnamehyphen}",
  43. initkwargs={},
  44. ),
  45. ]