From dbb0cbc05e6740e86b73a8de5db1391e8b342fa4 Mon Sep 17 00:00:00 2001 From: Anatoly Date: Wed, 28 Aug 2019 17:18:52 +0300 Subject: [PATCH] refactored endpoint to upload an image --- apps/gallery/serializers.py | 9 +++++++++ apps/gallery/views.py | 2 ++ 2 files changed, 11 insertions(+) diff --git a/apps/gallery/serializers.py b/apps/gallery/serializers.py index a3176b79..112ca432 100644 --- a/apps/gallery/serializers.py +++ b/apps/gallery/serializers.py @@ -5,6 +5,10 @@ from . import models class ImageSerializer(serializers.ModelSerializer): """Serializer for model Image.""" + # REQUEST + image = serializers.ImageField(write_only=True) + # RESPONSE + file = serializers.SerializerMethodField() class Meta: """Meta class""" @@ -12,4 +16,9 @@ class ImageSerializer(serializers.ModelSerializer): fields = ( 'id', 'image', + 'file' ) + + def get_file(self, obj): + """Get absolute URL path""" + return obj.get_full_image_url(request=self.context.get('request')) diff --git a/apps/gallery/views.py b/apps/gallery/views.py index 8a9195c3..31c08084 100644 --- a/apps/gallery/views.py +++ b/apps/gallery/views.py @@ -1,10 +1,12 @@ from rest_framework import generics +from rest_framework.permissions import AllowAny from . import models, serializers class ImageUploadView(generics.CreateAPIView): """Upload image to gallery""" + permission_classes = (AllowAny, ) model = models.Image queryset = models.Image.objects.all() serializer_class = serializers.ImageSerializer