Как получить изображения из 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')