Django ajax ajaxify загрузка изображений без базы данных
У меня откуда-то взялся код, который позволяет клиенту отображать на странице загруженное изображение, не сохраненное в базе данных. Возможно ли сделать это с помощью ajax? Я пытался, но я явно не знаю, что я делаю, возможно ли это вообще или есть ли безопасный для клиента способ сделать это. Я продолжаю получать fakepath и имя изображения. Вот код без моих неловких попыток ajax:
views.py
def upload_render(request):
if request.method == 'POST':
form = FileForm(request.POST, request.FILES)
if form.is_valid():
file = request.FILES['image']
data = file.read()
# Calling .decode() converts bytes object to str
encoded = b64encode(data).decode()
mime = 'image/jpeg;'
context = {"image": "data:%sbase64,%s" % (mime, encoded), 'form': form}
return render(request, 'upload_render.html', context)
else:
form = FileForm()
return render(request, 'upload_render.html', {'form': form})
upload_render.html
<h2>Image upload</h2>
<form method="post" enctype='multipart/form-data'>
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
{% if image %}
<img src="{{ image }}">
{% endif %}
forms.py
class FileForm(forms.Form):
image = forms.ImageField(help_text="Upload image: ", required=True)