Как загрузить документ в django rest framework

Я пытаюсь загрузить документ с помощью django rest framework и в настоящее время, по какой-то причине, Django не создает экземпляр таблицы Document и не сохраняет загруженный файл в папку media/documents локально

настройки

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')        

MEDIA_URL = '/media/'

models.py

class Document(models.Model):
    name = models.CharField(max_length=10)
    document_to_upload = models.FileField(upload_to="documents/")

serializers.py

class DocumentSerializer(serializers.ModelSerializer):
    class Meta:
        model = File
        fields = ["name", "document_to_upload"]

views.py

@api_view(["POST"])
def upload_file(request):
    if request.method == "POST":
        serializer = FileSerializer(request.data, request.FILES)
        if serializer.is_valid():
            serializer.save()
            return Response(data=request.data)
        else:
            serializer = FileSerializer()
            return Response(HTTP_400_BAD_REQUEST)

ответ, который я получаю от фронтэнда:

config: {transitional: {…}, transformRequest: Array(1), transformResponse: Array(1), timeout: 0, adapter: ƒ, …}
data: 400
headers: {content-length: '3', content-type: 'application/json'}
request: XMLHttpRequest {onreadystatechange: null, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, …}
status: 200
statusText: "OK"

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

Используйте FileUploadParser. В задокументированном примере вместо POST используется PUT.

Вернуться на верх