Как загрузить фотографию с помощью Ajax в Django? Python
Я пытаюсь загрузить фотографию профиля с помощью Ajax (используя FormData) в Django.
Ниже приведен код, который я использовал в html странице,
<img src="/media/{{user_profile.picture}}" width="150" height="150" alt="" id="pro_file"/>
<input id="upload-file" type="file" name="file"/>
и в jQuery (Ajax),
var fd = new FormData();
var vidFileLength = $('#upload-file')[0].files.length;
if(vidFileLength === 0){
var files = $('#pro_file').attr('src');
}
else{
var files = $('#upload-file')[0].files[0];
}
fd.append('file',files);
Затем я отправил fd
в атрибуте data в Ajax.
Однако, в файле views.py ниже приведен мой фрагмент кода,
fd = request.FILES
try:
profile_pic = fd['file']
except KeyError as e:
profile_pic = request.POST['file']
profile_pic = str(profile_pic).replace("/media/","")
Используя этот метод, мой код работает, но я сомневаюсь, правильный ли это способ сделать это? Есть предложения, пожалуйста?
Если у пользователя уже есть изображение, и он не выбирает новое изображение через вход, есть ли смысл посылать URL обратно на сервер? Сервер может найти его в базе данных, если ему это действительно нужно. А если это обновление профиля, то вам не нужно ничего делать и можно игнорировать отсутствие обратной отправки.