rit*_*eau 3 django django-urls django-views django-rest-framework
这是我在 Stackoverflow 上的第一个问题!
我是 Django 新手,正在学习一些教程。
我试图了解是否有一种方法可以从不同的视图类(如 APIView 和viewsets.ModelViewSet)设置 API 的路由(如果我不使用好的措辞,请告诉我)
在我的观点中:
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
Run Code Online (Sandbox Code Playgroud)
在网址中我有:
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
Run Code Online (Sandbox Code Playgroud)
但似乎我可以通过这种方式注册FileUploadView。因为我没有要渲染的查询集。
我有: AttributeError:类型对象“FileUploadView”没有属性“get_extra_actions”
我意识到(我认为)我可以使用APIViewfor FileUploadView(并添加 " .as_view()),但我认为我必须UniquePostViewSet使用重写APIView并准确定义我想在细节中看到的内容,如 POST、PUT 等......
我的问题是:有没有办法同时使用DefaultRouter router.register和插入继承自的视图APIView(以及继承自的视图)?viewsets.ModelViewset
希望所有这些都清楚,非常感谢您的帮助!
小智 9
像这样的东西应该有效。
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')
urlpatterns = [
path('demo',FileUploadView.as_view(),name='demo'),
]
urlpatterns += router.urls
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4290 次 |
| 最近记录: |