                  },
                  'detail_0': coreapi.Link(
                      url='/from-routercollision/detail/',
                      action='get',
                      description=desc
                  )
              }
          )
  
          assert schema == expected
 
</s> remove                         description=desc)
 </s> add                         description=desc_0) </s> remove from rest_framework.decorators import (
    api_view, detail_route, list_route, schema
)
 </s> add from rest_framework.decorators import action, api_view, schema </s> remove         @detail_route(methods=['options', 'get'])
 </s> add         @action(methods=['options', 'get'], detail=True) </s> remove         desc = schema['detail_0'].description  # not important here
 </s> add         # not important here
        desc_0 = schema['detail']['detail_export'].description
        desc_1 = schema['detail_0'].description
                    description=desc_1
                  },
                  'detail_0': coreapi.Link(
                      url='/from-routercollision/detail/',
                      action='get',
                    description=desc_1
                  )
              }
          )
  
          assert schema == expected
keep keep keep keep replace keep keep keep keep keep
 Rework dynamic list/detail actions (#5705)

* Merge list/detail route decorators into 'action'

* Merge dynamic routes, add 'detail' attribute

* Add 'ViewSet.get_extra_actions()'

* Refactor dynamic route checking & collection

* Refactor dynamic route generation

* Add 'ViewSet.detail' initkwarg

* Fixup schema test

* Add release notes for dynamic action changes

* Replace list/detail route decorators in tests

* Convert tabs to spaces in router docs

* Update docs

* Make 'detail' a required argument of 'action'

* Improve router docs 
tests/test_schemas.py