Обновление страницы без перезагрузки с помощью Django

Я делаю систему для определения присутствия по QR-коду с помощью Django, и мне нужен способ отображения изображения и текста при обнаружении QR-кода без необходимости перезагрузки страницы, я видел кое-что о HTMX, но не смог многого с ним сделать. В интернете не так много информации об использовании оператора if для этого.

views.py

HTML шаблон

{% extends '../base.html' %}

{% load static %}

{% block content %}


<div class="row">
    <hr />
    <div class="col-md-10 mx-auto">
        <form method="POST" enctype="multipart/form-data">
            {% csrf_token %}
            <div class="form-group row">
                <div class="col-sm-5">
                    <label for="typeOfBarcode">Estilo</label>
                    <select class="form-control" id="typeOfBarcode" name="typeOfBarcode">
                        {% for barcode_type in barcode_types %}
                        <option>{{ barcode_type }}</option>
                        {% endfor %}
                    </select>
                </div>
                <div class="col-sm-5">
                    <label for="typeOfClass">Turma</label>
                    <select class="form-control" id="typeOfClass" name="typeOfClass">
                        {% for turma in turmas %}
                        <option>{{ turma }}</option>
                        {% endfor %}
                    </select>
                </div>
                <div class="col-sm-3">
                    <label for="barcodeData">CPF </label>
                    <input type="search" id="barcodeData" name="barcodeData" class="form-control input" onfocus="this.value=''" required />
                </div>
                <div class="col-sm-5">
                    <label>Nome </label>
                    <input type="text" id="Name" name="Name" class="form-control input" onfocus="this.value=''" required />
                </div>
                <div>
                    <input type="file" name="Picture" required>
                </div>
                <div class="col-sm-2">
                    <label for="btnGenerate">Click to generate</label>
                    <button type="submit" id="btnGenerate" class="form-control btn btn-primary">Generate Barcode</button>
                </div>
                
            </div>
        </form>
    </div>
</div>

{% endblock content %}

(Извините за мой плохой английский, я использовал tradutor)

Ваш лучший вариант, вероятно, рассмотреть POST формы, используя Ajax+Javascirpt/JQuery, Это позволит вам отправлять форму и обновлять ее.

Я не уверен на 100%, как вы вернете изображение в Ajax.

Я уже работал со штрих-кодами, и то, что я делал, это создавал их в папке static/barcodes/encoded_barcode_text.png, затем передавал их с помощью тега изображения, используя URL. Затем вы можете запустить Cron/Scheduled Task для очистки этого каталога в определенный момент

вы можете использовать django channels для создания асинхронного соединения с сервером с помощью встроенной библиотеки javascript websocket Вы можете прочитать больше в этой документации для базового использования каналов django

Вернуться на верх