Как получить реальный путь вместо фальшивого при использовании AJAX с DJANGO?
Я пытаюсь получить реальный путь к изображению, которое загружено в локальную директорию, вместо fakepath. До использования AJAX я смог получить реальный путь, но чтобы остановить обновление страницы при каждом отправлении формы (причина в том, что я хочу, чтобы текущие значения присутствовали, а не возвращались к значениям по умолчанию при каждом отправлении формы), я включил AJAX. Я понимаю, что это мера безопасности и все такое, но я работаю в локальной среде, и есть ли у кого-нибудь какие-нибудь способы обойти это? То, что я хочу, это что-то в верхней ссылке (я получил эту ссылку, отправив значения через администратора), но то, что я получаю, это что-то в нижней (через кнопку отправки на форме).
Я также прилагаю соответствующие части моего кода DJANGO:
MODELS.py
from django.db import models
from django.db import IntegrityError
from django.http import HttpResponse
from datetime import datetime
import uuid
# lists of options
cities_name_list=(("Abbotabad","Abbotabad"),("Bahawalpur","Bahawalpur"),("Charsaddah","Charsaddah"),("Dera Ghazi Khan","Dera Ghazi Khan"),("Faisalabad","Faisalabad"),("Gawadar","Gawadar"),("Islamabad","Islamabad"),("Rawalpindi","Rawalpindi"),("Karachi","Karachi"),("Lahore","Lahore"),("Multan","Multan"),("None","None"))
massavi_sheets=(("Alif-1","Alif-1"),("Bay-1","Bay-1"),("Jeem-1","Jeem-1"),("Daal-1","Daal-1"),("Hay-1","Hay-1"),("Wao-1","Wao-1"),("None","None"))
# define upload path function
def content_file_name(instance, filename):
name, ext = filename.split('.')
file_path = 'images/{mauza}/{form_id}.{ext}'.format(
form_id=instance.form_id, mauza=instance.mauza, ext=ext)
return file_path
# Create your models here.
class UploadImage(models.Model):
form_id = models.CharField(max_length=100, primary_key=True, unique=True, default=1)
time_now = models.DateField(default=datetime.now,blank=True)
image = models.ImageField(max_length=200,upload_to= content_file_name, null=True, blank=True)
type_data = models.CharField(max_length=50, null=True, blank=True, default="Massavi")
district = models.CharField(max_length=50, null=True, blank=True, choices = cities_name_list)
tehsil = models.CharField(max_length=50, null=True, blank=True, choices = cities_name_list)
patwar_circle = models.CharField(max_length=50, null=True, blank=True, choices = cities_name_list)
mauza = models.CharField(max_length=50, null=True, blank=True, choices = cities_name_list)
massavi_no = models.CharField(max_length=50, null=True, blank=True,choices = massavi_sheets)
def __str__(self):
return self.form_id
def save(self, *args, **kwargs):
self.form_id = f'{self.district}_{self.tehsil}_{self.patwar_circle}_{self.mauza}_{self.massavi_no}'
super(UploadImage,self).save(*args, **kwargs)
VIEWS.py
def index(request):
return render(request, 'index.html')
def create(request):
if request.method == 'POST':
form_id = request.POST.get('form_id')
image = request.POST.get('image')
type_data = request.POST.get('type_data')
district = request.POST.get('district')
tehsil = request.POST.get('tehsil')
patwar_circle = request.POST.get('patwar_circle')
mauza = request.POST.get('mauza')
massavi_no = request.POST.get('massavi_no')
new_profile = UploadImage(form_id=form_id, image=image, type_data=type_data, district=district, tehsil=tehsil, patwar_circle=patwar_circle, mauza=mauza, massavi_no=massavi_no)
new_profile.save()
success = 'Form Submitted Successfully'
return HttpResponse(success)
AJAX функция
<h3 align="center" style="margin-top:60px; display: inline; color:green; margin-left: 128px;"></h3>
<script type="text/javascript">
$(document).on('submit', '#image_submission_form',function(e){
e.preventDefault();
$.ajax({
type:'POST',
url:'/create/',
data:{
form_id:$('#id_form_id').val(),
image:$('#id_image').val(),
type_data:$('#id_type_data').val(),
district:$('#id_district').val(),
tehsil:$('#id_tehsil').val(),
patwar_circle:$('#id_patwar_circle').val(),
mauza:$('#id_mauza').val(),
massavi_no:$('#id_massavi_no').val(),
csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),
},
success: function(data){
$('h3').html(data)
}
});
});
</script>
