Как загрузить документ в 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.