2 回答
TA贡献1859条经验 获得超6个赞
您的DirectView类必须从ViewDjango 中的类继承才能使用as_view.
from django.views.generic import View
class DirectView(mixins.CreateModelMixin, View):
如果您使用的是 rest 框架,那么您在这里需要的继承可能是CreateAPIViewor GenericAPIView(with CreateModelMixin),它是上述View类的 API 等价物。
TA贡献1784条经验 获得超7个赞
如果我们查看 的源代码mixins.CreateModelMixin,我们可以看到它是从object( builtin type )继承的,因此它独立于除builtin type之外的任何类型的继承。
除此之外,Mixin类是一种特殊的多重继承。你可以在这里阅读更多关于 Mixin 的信息。简而言之,Mixins 为类(类似于辅助类)提供了额外的功能。
那么,这个问题的解决方案是什么?
解决方案 - 1:使用CreateAPIView
由于您正在尝试扩展 的功能CreateModelMixin,因此强烈建议使用此 DRF 内置视图作为,
from rest_framework import generics
class DirectView(generics.CreateAPIView):
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)
- 2 回答
- 0 关注
- 256 浏览
添加回答
举报