Это мой первый вопрос по 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
) одновременно ?
Надеюсь, все это понятно и большое спасибо за помощь !!!