在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)
现在在我的情况下,我必须处理数据并将其发回。我不需要将它保存在数据库中。避免保存和处理数据是一种好的做法吗?或者是否因为不保存而导致任何错误?
答案 0 :(得分:1)
当然,你可以使用保存部分。
序列化程序save
将调用序列化程序create
/ update
,后者将进一步处理数据或/并将结果保存到数据库或其他任何东西。
答案 1 :(得分:0)
您可以覆盖save方法。这样,您无需保存到数据库,而是执行一些操作。