Extending custom router to default router across apps in Django Rest Framework : <p>I have come across a problem regarding having the API apps seperate, while still being able to use the browsable API for navigation.</p>

<p>I have previously used a seperate <code>routers.py</code> file in my main application containing the following extension of the <code>DefaultRouter</code>.</p>

<pre><code>class DefaultRouter(routers.DefaultRouter):
    def extend(self, router):
        self.registry.extend(router.registry)
</code></pre>

<p>Followed by adding the other application routers like this:</p>

<pre><code>from . routers import DefaultRouter
from app1.urls import router as app1_router

# Default Router
mainAppRouter = DefaultRouter()
mainAppRouter.extend(app1_router)
</code></pre>

<p>where the <code>app1_router</code> is a new <code>SimpleRouter</code> object.</p>

<p>Now the problem occurs when I want to modify the <code>SimpleRouter</code> and create my own <code>App1Router</code>, such as this</p>

<pre><code>class App1Router(SimpleRouter):

    routes = [
        Route(
            url = r'^{prefix}{trailing_slash}$',
            mapping = {
                'get': 'retrieve',
                'post': 'create',
                'patch': 'partial_update',
            },
            name = '{basename}-user',
            initkwargs = {}
        ),
    ]
</code></pre>

<p>This will not handle my extension correctly. As an example, <code>GET</code> and <code>PATCH</code> are not recognized as allowed methods whenever I extend the router, but when I dont extend, but only use the custom router, everything works fine.</p>

<p>My question is therefor, <em>how can I handle extending custom routers across seperate applications, but still maintain a good browsable API</em>? </p>
