AttributeError:类型对象“DirectView”没有属性“as_view”

joh*_*ohn 1 python django django-rest-framework

这是我的views.py代码

class DirectView(mixins.CreateModelMixin):
    serializer_class=DirectSerializer
    def perform_create(self, serializer):
        serializer.save(user=self.request.user)
    def post(self,request,*args,**kwargs):
        return self.create(request,*args,**kwargs)
Run Code Online (Sandbox Code Playgroud)

和我的 urls.py

path('direct/',DirectView.as_view(),name='direct'),
Run Code Online (Sandbox Code Playgroud)

但每当我尝试运行服务器时,我都会收到错误

AttributeError: type object 'DirectView' has no attribute 'as_view'
Run Code Online (Sandbox Code Playgroud)

我不明白问题是什么?

mar*_*er_ 5

您的DirectView类必须继承自ViewDjango 中的类才能使用as_view.

from django.views.generic import View

class DirectView(mixins.CreateModelMixin, View):
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 REST 框架,也许您需要的继承是CreateAPIViewor GenericAPIView(with ),它是上面提到的类CreateModelMixin的 API 等效项。View