Django Rest Framework如何通过序列化器删除模型

时间:2018-09-15 13:37:22

标签: django-rest-framework

在这种情况下,我想通过序列化器删除保存的模型:

class SomeView(APIView):
  ...
  def post(self, request, context):
    serializer = MySerializer(data = request.data)
    # I need to save the model since I need the file field in the following processings
    if serializer.is_valid():
      serializer.save()
    try:
      ...
    except:
      # I need to delete the model in case of exception
      serializer.delete()

但是似乎不存在通过其序列化程序删除保存的模型的方法,因为我收到了此错误AttributeError: 'VideoSerializer' object has no attribute 'delete'

1 个答案:

答案 0 :(得分:1)

serializer.save()返回保存的对象。

instance = None
if serializer.is_valid():
  instance = serializer.save()
try:
  ...
except:
  instance.delete()

那应该删除正在保存的对象。