#python #django #django-rest-framework
#python #django #django-rest-framework
Вопрос:
Как я могу создать новый вложенный маршрут в GenericAPIView в django rest framework для включения URL API, такого как ‘report / tasks / export_excel’
Набор представлений
class TaskReportViewSet(generics.GenericAPIView):
queryset = TiempoOperacion.objects.all()
pagination_class = StandardResultsSetPagination
serializer_class = TiempoOperacionSerializer
def get(self, request):
"""
Some code for 'get' request ...
"""
@action(detail=False, methods=['GET'])
def export_excel(self, request):
sheet = excel.pe.Sheet([[1, 2],[3, 4]])
return excel.make_response(sheet, "csv")
URL-адреса
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^report/tasks/', TaskReportViewSet.as_view()),
]
Ответ №1:
Вы этого не делаете.
@action
предназначено только для ViewSet
, GenericViewSet
ModelViewSet
всего, что найдено в rest_framework.viewsets
.
Комментарии:
1. Спасибо, я меняю дженерики. GenericAPIView для наборов представлений. GenericViewSet, который содержит общие представления API. Также я заменяю функцию «get» на «list», которая является запросом обработчика GET в ViewSet