【问题标题】:Default method execution order (Ex:- POST vs perform_create)in Django rest framework class based Views基于 Django REST 框架类的视图中的默认方法执行顺序(例如:POST 与 perform_create)
【发布时间】:2016-05-18 18:27:55
【问题描述】:

我正在学习 DRF,我已经到了使用 mixins 和 GenericView 创建视图的目的。我想了解的是,方法的执行顺序是什么?

假设我正在创建这样的视图。

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 没有首先执行。

我确定我在这里遗漏了一些东西,如果可能的话,我正在寻找一些关于此的文件。

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    Viewset 的 post 方法只是调用了 CreateMixin 的 create 方法,它从 request 中获取数据,从 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-19
      • 2019-04-08
      • 2019-06-26
      • 2013-11-16
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      相关资源
      最近更新 更多