API Wagtail, одна конечная точка с различными наборами представлений

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

class TeamPage(Page)

и

class BlogPage(Page):

и мне нужны следующие пути url

GET /teams - TeamsAPIViewSet.listing_view to return a list of all TeamPages
GET /teams/<slug> - TeamsAPIViewSet.detail_view to return the detail for a single TeamPage
GET /teams/<slug>/blogs - BlogsAPIViewSet.listing_view to return a list of all BlogPages for a specific team
GET /teams/<slug>/blogs - BlogsAPIViewSet.detail_view to return a specific BlogPage

Регистрация конечной точки "teams" в api.py позволяет использовать только один ViewSet для этой конечной точки

api_router.register_endpoint('teams', TeamsAPIViewSet)

Таким образом, /api/teams всегда будет использовать TeamsAPIViewSet.

Я попробовал установить пути в urls.py следующим образом:

path('api/teams/', TeamsAPIViewSet.as_view({"get": "listing_view"}), name="listing"),
path('api/teams/<slug:slug>/', TeamsAPIViewSet.as_view({'get': 'detail_view'})),
path('api/teams/<slug:team_slug>/<slug:slug>', ContentAPIViewSet.as_view({'get': 'detail_view'})),
path('api/teams/<slug:team_slug>/blogs/', BlogsAPIViewSet.as_view({'get': 'listing_view'})),
path('api/teams/<slug:team_slug>/blogs/<slug:slug>/', BlogsAPIViewSet.as_view({'get'
: 'detail_view'})),

но это вызывает исключение,

'Request' object has no attribute 'wagtailapi_router'

Любые предложения будут приняты с благодарностью.

Вернуться на верх