我正在学习DRF,我已经使用mixins和GenericView来创建View。我想要理解的是,这些方法的执行顺序是什么?
假设我正在创建这样的视图。
class MyView(mixins.CreateModelMixin, generics.ListCreateAPIView):
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
def perform_create(self...):
....(some code)
那么,对于POST请求,首先执行哪个方法,为什么?当我实际尝试这个时,perform_create首先被执行,我想要理解为什么POST没有先被执行。
我确信我在这里遗漏了一些东西,如果可能的话,我正在寻找一些关于此的文件。
答案 0 :(得分:0)
Viewset的post方法只调用CreateMixin的create方法,该方法从HTTP POST方法获取请求中的数据,然后序列化并验证数据,然后调用perform_create,这实际上创建了模型对象并将其写入数据库。
你可以在这里看到它: https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/mixins.py
在这里: https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/viewsets.py