在将数据立即保存到数据库后,我如何做一些事情?

2024-09-25 10:18:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个WorkOrderCreateAPIView和WorkOrderCreateSerializer:

# views
class WorkOrderCreateAPIView(CreateAPIView):
    serializer_class = WorkOrderCreateSerializer
    permission_classes = []
    queryset = WorkOrder.objects.all()

# serializers
class WorkOrderCreateSerializer(ModelSerializer):
    """
    Create the work order
    """
    class Meta:
        model = WorkOrder
        exclude = ("workorder_num","to_group","user", "workorder_status")

    def create(self, validated_data):

        user = getUserFormSerializer(self)
        to_group = Group.objects.filter(name=ADMIN_GROUP_CHOICES.售后组).first()

        return WorkOrder.objects.create(
            user=user,
            workorder_num = generateWorkorderNum(userid=user.id),
            to_group=to_group,
            workorder_status = WORKORDER_STATUS_CHOICES.已提交,
            **validated_data,
        )

我可以访问WorkOrderCreateAPIView来创建工单,但是,我想在立即保存WorkOrder实例之后做一些事情

您可以看到,在create(self, validated_data)方法中,最后一行是return WorkOrder.objects.create(xxx),它不是保存数据,因此,我如何知道序列化程序或查看保存数据的时间?在将数据保存到数据库后,我想立即做一些其他事情,例如发送电子邮件


Tags: to数据selfdataobjectscreategroupnum