这是我的views.py代码
import
和我的urls.py
models.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)
我不明白问题是什么?
答案 0 :(得分:3)
您的xPosition = [[button superview] superview].frame.origin.x;
yPosition = [[button superview] superview].frame.origin.y;
类必须继承自Django中的DirectView
类,才能使用as_view
。
View
如果您使用的是其余框架,则您这里需要的继承可能是CreateAPIView
或GenericAPIView
(带有from django.views.generic import View
class DirectView(mixins.CreateModelMixin, View):
),与CreateModelMixin
的API等效上面提到的课程。
答案 1 :(得分:0)
如果我们正在研究source code of mixins.CreateModelMixin
,我们可以看到它是从object
( 内置类型 )继承的,因此它独立于任何 内置类型 以外的一种继承。
除此之外, Mixin 类是一种特殊的多重继承。您可以阅读有关Mixins here的更多信息。简而言之,Mixins为该类(种类为 helper类)提供了附加功能。
那么,该问题的解决方案是什么?
解决方案-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)
参考
1. What is a mixin, and why are they useful?
2. Python class inherits object