Подтвердить что ты не робот

Расширение пользовательского маршрутизатора до маршрутизатора по умолчанию в приложениях в Django Rest Framework

Я столкнулся с проблемой, связанной с тем, что приложения API отличаются друг от друга, при этом все еще можно использовать API для просмотра для навигации.

Ранее я использовал отдельный файл routers.py в моем основном приложении, содержащем следующее расширение DefaultRouter.

class DefaultRouter(routers.DefaultRouter):
    def extend(self, router):
        self.registry.extend(router.registry)

После этого добавляются другие маршрутизаторы приложений следующим образом:

from . routers import DefaultRouter
from app1.urls import router as app1_router

# Default Router
mainAppRouter = DefaultRouter()
mainAppRouter.extend(app1_router)

где app1_router - новый объект SimpleRouter.

Теперь проблема возникает, когда я хочу изменить SimpleRouter и создать свой собственный App1Router, например этот

class App1Router(SimpleRouter):

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

Это не будет правильно обрабатывать мое расширение. В качестве примера GET и PATCH не распознаются как разрешенные методы всякий раз, когда я расширяю маршрутизатор, но когда я не расширяюсь, но использую только настраиваемый маршрутизатор, все работает нормально.

Мой вопрос заключается в том, как я могу обрабатывать расширение настраиваемых маршрутизаторов по отдельным приложениям, но при этом поддерживать хороший API-интерфейс для просмотра?

4b9b3361