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)
Вернуться на верх