I have managed to use the Django REST-framework to upload an image associated with an item. However, the PUT request throws an error (400) when attempting to update the image. Here is the code:
- Model:
- image = models.ImageField(upload_to="images/", blank=True, null=True)
- Serializer:
- View:
@api_view(["GET", "PUT"])
def api_item_beta(request, pk):
try:
item = Item.objects.get(pk=pk)
except Item.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
if request.method == "GET":
serializer = ItemSerializer(item)
return Response(serializer.data)
elif request.method == "PUT":
serializer = ItemSerializer(item, data=request.data, partial=True)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
So, I can POST an image using this serializer. The PUT request works for everything EXCEPT the image. The image data is identical in both cases (where I am posting and putting). What am I missing that the serializer is expecting??
Any help much appreciated!