parent
f348084d85
commit
340a60324c
|
|
@ -7,6 +7,7 @@ from django.db import models
|
||||||
from django.utils.encoding import force_text
|
from django.utils.encoding import force_text
|
||||||
from rest_framework import serializers, status
|
from rest_framework import serializers, status
|
||||||
from rest_framework.mixins import DestroyModelMixin, RetrieveModelMixin, UpdateModelMixin
|
from rest_framework.mixins import DestroyModelMixin, RetrieveModelMixin, UpdateModelMixin
|
||||||
|
from rest_framework.parsers import FileUploadParser
|
||||||
from rest_framework.request import is_form_media_type
|
from rest_framework.request import is_form_media_type
|
||||||
from rest_framework.settings import api_settings as rest_framework_settings
|
from rest_framework.settings import api_settings as rest_framework_settings
|
||||||
from rest_framework.utils import encoders, json
|
from rest_framework.utils import encoders, json
|
||||||
|
|
@ -366,6 +367,7 @@ def get_consumes(parser_classes):
|
||||||
:rtype: list[str]
|
:rtype: list[str]
|
||||||
"""
|
"""
|
||||||
parser_classes = get_object_classes(parser_classes)
|
parser_classes = get_object_classes(parser_classes)
|
||||||
|
parser_classes = [pc for pc in parser_classes if not issubclass(pc, FileUploadParser)]
|
||||||
media_types = [parser.media_type for parser in parser_classes or []]
|
media_types = [parser.media_type for parser in parser_classes or []]
|
||||||
non_form_media_types = [encoding for encoding in media_types if not is_form_media_type(encoding)]
|
non_form_media_types = [encoding for encoding in media_types if not is_form_media_type(encoding)]
|
||||||
if len(non_form_media_types) == 0:
|
if len(non_form_media_types) == 0:
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ from rest_framework import viewsets
|
||||||
# noinspection PyDeprecation
|
# noinspection PyDeprecation
|
||||||
from rest_framework.filters import OrderingFilter
|
from rest_framework.filters import OrderingFilter
|
||||||
from rest_framework.pagination import LimitOffsetPagination
|
from rest_framework.pagination import LimitOffsetPagination
|
||||||
from rest_framework.parsers import MultiPartParser
|
from rest_framework.parsers import MultiPartParser, FileUploadParser
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
|
||||||
from articles import serializers
|
from articles import serializers
|
||||||
|
|
@ -118,7 +118,7 @@ class ArticleViewSet(viewsets.ModelViewSet):
|
||||||
type=openapi.TYPE_INTEGER,
|
type=openapi.TYPE_INTEGER,
|
||||||
description="this should not crash (form parameter on DELETE method)"
|
description="this should not crash (form parameter on DELETE method)"
|
||||||
)])
|
)])
|
||||||
@detail_route(methods=['get', 'post', 'delete'], parser_classes=(MultiPartParser,))
|
@detail_route(methods=['get', 'post', 'delete'], parser_classes=(MultiPartParser, FileUploadParser))
|
||||||
def image(self, request, slug=None):
|
def image(self, request, slug=None):
|
||||||
"""
|
"""
|
||||||
image method docstring
|
image method docstring
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ from djangorestframework_camel_case.parser import CamelCaseJSONParser
|
||||||
from djangorestframework_camel_case.render import CamelCaseJSONRenderer
|
from djangorestframework_camel_case.render import CamelCaseJSONRenderer
|
||||||
from inflection import camelize
|
from inflection import camelize
|
||||||
from rest_framework import generics, status
|
from rest_framework import generics, status
|
||||||
from rest_framework.parsers import FormParser
|
from rest_framework.parsers import FormParser, FileUploadParser
|
||||||
|
|
||||||
from drf_yasg import openapi
|
from drf_yasg import openapi
|
||||||
from drf_yasg.inspectors import SwaggerAutoSchema
|
from drf_yasg.inspectors import SwaggerAutoSchema
|
||||||
|
|
@ -22,7 +22,7 @@ class SnippetList(generics.ListCreateAPIView):
|
||||||
queryset = Snippet.objects.all()
|
queryset = Snippet.objects.all()
|
||||||
serializer_class = SnippetSerializer
|
serializer_class = SnippetSerializer
|
||||||
|
|
||||||
parser_classes = (FormParser, CamelCaseJSONParser,)
|
parser_classes = (FormParser, CamelCaseJSONParser, FileUploadParser)
|
||||||
renderer_classes = (CamelCaseJSONRenderer,)
|
renderer_classes = (CamelCaseJSONRenderer,)
|
||||||
swagger_schema = CamelCaseOperationIDAutoSchema
|
swagger_schema = CamelCaseOperationIDAutoSchema
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue