Django REST保存序列化器

时间:2016-05-20 07:33:03

标签: django django-rest-framework

在Django REST框架中,序列化程序将.save()选项保存在数据库中,我见过的大多数示例都是在数据验证后立即使用它。例如,对于批量发布:

@api_view(['POST'])
def post_calculation(request):
    if request.method == 'POST':
        is_many = True if isinstance(request.data, list) else False

        # JSON to serializer object
        serializer = SearchRequestSerializer(data=request.data, many=is_many)
        if (serializer.is_valid() is False):  
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

        serializer.save() <-- can I remove this?

        #-- do some processing stuff here on serializer.data ---

        return Response(serializer.data) 

现在在我的情况下,我必须处理数据并将其发回。我不需要将它保存在数据库中。避免保存和处理数据是一种好的做法吗?或者是否因为不保存而导致任何错误?

2 个答案:

答案 0 :(得分:1)

当然,你可以使用保存部分。

序列化程序save将调用序列化程序create / update,后者将进一步处理数据或/并将结果保存到数据库或其他任何东西。

答案 1 :(得分:0)

您可以覆盖save方法。这样,您无需保存到数据库,而是执行一些操作。