Modelviewset post 请求成功时如何调用函数
How to call function when post request succeed in Modelviewset
# views.py
import schedule_update.send_the_result
class UpdatedTypeViewSet(viewsets.ModelViewSet):
queryset = Updated_Type.objects.all()
serializer_class = UpdatedTypeSerializer
# Is it correct to code here, if I would like to call function when post request succeed, and how?
# send_to_redmine.py
def Send_The_Result():
# get the data from request and send it to redmine.
if __name__ == '__main__':
Send_The_Result()
这是我的源代码,我在 Modelviewset 中遇到了 2 个问题。
- 当post 请求在Modelviewset 中成功时,是否可以调用Send_The_Result?
- 当post请求发送后,如何将数据带入Send_The_Result?
如果需要任何进一步的信息,请告诉我,谢谢。
Django Rest Framework 是对 Django 的抽象,通过与基本 HTTP 协议略有不同的操作来实现 Web 方法。例如:POST
是通过create
方法实现的。
等效的 ModelViewSet 方法:
def create(self, *args, **kwargs):
return super().create(*args, **kwargs)
ModelViewSet 中的 create 方法调用序列化程序,评估请求,如果有效,则通过模型和 returns 响应存储在数据库中。
因此,这为您提供了三个级别的 space,您要在其中执行 some_function_on_successful_task_completion
。
- 您可以在视图的
create
方法中覆盖,
- 您可以在 Serializer 的
create
方法中覆盖。
- 您可以在模型的
save
方法中覆盖。
例如,在您的模型中:
def save(self, *args, **kwargs):
# normal stuff, save to db.
# easier here, as you have every information you need to perform operations
return obj
# views.py
import schedule_update.send_the_result
class UpdatedTypeViewSet(viewsets.ModelViewSet):
queryset = Updated_Type.objects.all()
serializer_class = UpdatedTypeSerializer
# Is it correct to code here, if I would like to call function when post request succeed, and how?
# send_to_redmine.py
def Send_The_Result():
# get the data from request and send it to redmine.
if __name__ == '__main__':
Send_The_Result()
这是我的源代码,我在 Modelviewset 中遇到了 2 个问题。
- 当post 请求在Modelviewset 中成功时,是否可以调用Send_The_Result?
- 当post请求发送后,如何将数据带入Send_The_Result?
如果需要任何进一步的信息,请告诉我,谢谢。
Django Rest Framework 是对 Django 的抽象,通过与基本 HTTP 协议略有不同的操作来实现 Web 方法。例如:POST
是通过create
方法实现的。
等效的 ModelViewSet 方法:
def create(self, *args, **kwargs):
return super().create(*args, **kwargs)
ModelViewSet 中的 create 方法调用序列化程序,评估请求,如果有效,则通过模型和 returns 响应存储在数据库中。
因此,这为您提供了三个级别的 space,您要在其中执行 some_function_on_successful_task_completion
。
- 您可以在视图的
create
方法中覆盖, - 您可以在 Serializer 的
create
方法中覆盖。 - 您可以在模型的
save
方法中覆盖。
例如,在您的模型中:
def save(self, *args, **kwargs):
# normal stuff, save to db.
# easier here, as you have every information you need to perform operations
return obj