I have started to play with the Django REST framework. What I am trying to do is to POST a request with some JSON, create a Django Model object out of it, and use the object without saving it. My Django model is called SearchRequest. What I have is:
@api_view(['POST'])
def post_calculation(request):
if request.method == 'POST':
#JSON to serializer object
serializer = SearchRequestSerializer(data=request.data)
if (serializer.is_valid() == False):
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
mySearchRequestObject = serializer.save()
This does create a SearchRequest object, however saves it into the database right away. I would need it without saving.
Add this method to your
SearchRequestSerializer
classAnd call it in function
post_calculation
instead ofsave
, like so:If you're using a Generic View or using
mixins.CreateModelMixin
directly in your view, you may find yourself in a situation where you need to get access to the object in theperform_create
method. You can use Moses Koledoye's idea to create the object without saving:This is opposed to having the line
instance = serializer.save()
in thisperform_create
method which gives you access to the instance but requires you to save it, which could be bad a few ways, such as