【问题标题】:How do I rollback transaction in django-rest-framework APIView?如何在 django-rest-framework APIView 中回滚事务?
【发布时间】:2016-08-29 10:57:58
【问题描述】:

从下面看。我尝试强制事务回滚。但没有工作。数据仍然插入到数据库中。谁能给我正确的方法?

class DocumentDetailView(APIView):
        def post(self, request):
            sid = transaction.savepoint()
            serializer = DocumentSerializer(Documents(), data=request.data)
            if serializer.is_valid():
                serializer.save()
                transaction.savepoint_rollback(sid)
                return HttpResponse(JSONRenderer().render(serializer.data), status=201)
            else:
                return HttpResponse(JSONRenderer().render(serializer.errors), status=400)

【问题讨论】:

    标签: django transactions django-rest-framework


    【解决方案1】:

    尝试使用 transaction.atomic()

    with transaction.atomic():
        serializer.save()
        transaction.set_rollback(True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-07
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 2018-12-06
      相关资源
      最近更新 更多