Quantcast
Channel: Active questions tagged rest - Stack Overflow
Viewing all articles
Browse latest Browse all 4051

BrowsableAPIRenderer doens't have a file upload field

$
0
0

I'm trying to have an image upload field, so I could upload multiple images per post. But it seems like it doesn't have a file upload field, let alone that would allow and save multiple files.

views.py

class PostsViewSet(ModelViewSet):    queryset = Post.objects.all()    serializer_class = PostSerializer    permission_classes = [IsAuthenticated, IsOwnerOrReadOnly|IsAdminUser]    filter_backends = (filters.DjangoFilterBackend,)    filterset_class = PostFilter    parser_classes = [JSONParser, MultiPartParser, FileUploadParser]    renderer_classes = [JSONRenderer, BrowsableAPIRenderer]

serializers.py

class PostImageSerializer(serializers.ModelSerializer):    class Meta:        model = PostImage        fields = ('image',)class PostSerializer(serializers.ModelSerializer):    author = UserSerializer(read_only=True)    comments = CommentSerializer(many=True, read_only=True, source='comment_set')    likes_count = serializers.SerializerMethodField()    images = PostImageSerializer(source='postimage_set', many=True, read_only=True)    class Meta:        model = Post        fields = "__all__"    def create(self, validated_data):        validated_data["author"] = self.context["request"].user        images_data = self.context.get('view').request.FILES        print(validated_data)        post = Post.objects.create(text=validated_data.get('text'), author=validated_data.get('author'))        for image_data in images_data.values():            PostImage.objects.create(post=post, image=image_data)        return post

models.py

class Post(models.Model):    id = models.AutoField(primary_key=True)    text = models.TextField(max_length=165)    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)    created_at = models.DateTimeField(auto_now_add=True)    def __str__(self):        return f'{self.author} posts "{self.text}"'class PostImage(models.Model):    post = models.ForeignKey(Post, on_delete=models.CASCADE)    image = models.ImageField(upload_to='images/', blank=True)

and it looks like this

enter image description here

Where's error?


Viewing all articles
Browse latest Browse all 4051

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>