Настройка маршрутизатора с APIView и viewset в Django Rest Framework - PullRequest
0 голосов
/ 09 апреля 2020

Это мой первый вопрос по Stackoverflow!

Я новичок в Django и следую некоторым учебникам.

Я пытаюсь понять, есть ли способ настроить маршрутизация API из различных классов представлений, таких как APIView и viewsets.ModelViewSet (скажите, пожалуйста, не использую ли я хорошую формулировку)

В представлениях у меня есть:

from rest_framework import viewsets
from post.models import UniquePost
from .serializers import UniquePostSerializers
from rest_framework.views import APIView

class UniquePostViewSet(viewsets.ModelViewSet):
    serializer_class = UniquePostSerializers
    queryset = UniquePost.objects.all()

class FileUploadView(APIView):
     some code here but no queryset nor serialized data...and no model

В URL-адресах у меня есть:

from post.api.views import UniquePostViewSet
from django.urls import path, include
from rest_framework.routers import DefaultRouter

from post.api.views import FileUploadView

router = DefaultRouter()
router.register('UniquePost', UniquePostViewSet, base_name='uniquepostitem')
router.register('demo', FileUploadView, base_name='file-upload-demo')
urlpatterns = router.urls

Но, похоже, я могу зарегистрировать FileUploadView таким образом. Потому что у меня нет набора запросов для визуализации.

У меня есть: AttributeError: тип объекта 'FileUploadView' не имеет атрибута 'get_extra_actions'

Я понял, что (я думаю, что) я могу используйте APIView для FileUploadView (и добавьте ".as_view()), но я думаю, что мне нужно переписать UniquePostViewSet, используя APIView, и точно определить, что я хочу видеть в деталях, таких как POST, PUT и c ...

Мой вопрос таков: есть ли способ использовать DefaultRouter router.register и вставить представление, которое наследуется от APIView (и представление, которое наследует от viewsets.ModelViewset) одновременно ?

Надеюсь, все это понятно и большое спасибо за помощь !!!

...