Загрузка изображений Django Rest Framework

у меня есть модель продукта:

class Product(models.Model):
    ...
    image = models.ImageField(
        upload_to=lambda instance, filename: 'images/{0}/{1}'.format(instance.id, filename),
        max_length=254, blank=True, null=True
    )
    ...

тогда у меня есть сериализатор:

class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = (
            ...
            'image',
            ...
        )

и тогда у меня есть взгляды:

class ProductViewSet(BaseViewSet, viewsets.ModelViewSet):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer

как я могу загрузить изображение с почтальоном? Каковы наилучшие методы загрузки изображения в модель? Спасибо.

1 ответов


вы можете создать конечную точку для загрузки изображений, это будет так:

class ProductViewSet(BaseViewSet, viewsets.ModelViewSet):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer

    @detail_route(methods=['post'])
    def upload_docs(request):
        try:
            file = request.data['file']
        except KeyError:
            raise ParseError('Request has no resource file attached')
        product = Product.objects.create(image=file, ....)

вы можете обойти это решение

-- обновление: вот как загрузить с postman enter image description here