Как получить изображения из AJAX и сохранить их в Django

Я пытаюсь получить изображение с помощью AJAX и сохранить его в моей модели django. Однако я не могу увидеть переменную 'photo', которую AJAX возвращает в терминале, хотя другие переменные (csrf, name...) там есть. Поэтому я не могу обработать поле 'photo' и сохранить его.

вот querydict, который я получил от AJAX. csrf и имя там есть, но нет переменной 'photo'.

*** request.POST:  <QueryDict: {'csrfmiddlewaretoken': ['krnIBkcYUb1breFjMyoReCwXeH9DLFc1Pvg2x1U2SGZSxPxQSLOwOxs1aSMrvBkf'], 'name': ['fgdfdsfsdf']}>

js скрипт

var clientCreateForm = document.getElementById('client-create-form')
var csrf = document.getElementsByName('csrfmiddlewaretoken')
var client_name = document.getElementById('name')
var image = document.getElementById('photo')

   clientCreateForm.addEventListener('submit', e => {
        e.preventDefault()
        console.log('submitted')
        var resim = image.files[0]
        console.log(resim)

        var fd = new FormData()
        fd.append('csrfmiddlewaretoken', csrf[0].value)
        fd.append('name', client_name.value)
        fd.append('photo', resim)

        $.ajax({
            type:'POST',
            url:'/clients/',
            enctype: 'multipart/form-data',
            data: fd,
            contentType: false,
            processData: false,
            success: function (response) {
                window.location.replace(response.instance_url)
            },
            error: function (error) {
                console.log("An error occurred")
            }
        })
    })

views.py

 def post(self, request, *args, **kwargs):
        if is_ajax(request=request): # if request.method == "POST":
            print("*** request.POST: ", request.POST)
            my_name = request.POST.get('name')
            my_foto = request.POST.get('photo')
            new_client = models.Client.objects.create(owner=self.request.user, name=my_name, sector=my_sector, foto=my_foto)
            new_client.save()
            slug = new_client.slug
            return JsonResponse({'instance_url': slug})
        return redirect('action-listview')
Вернуться на верх