apirouter.py 1.5 KB

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