Django - Как сделать заново страницу для отображения данных, основанных на поле формы? - PullRequest
0 голосов
/ 28 октября 2019

У меня есть форма, в которой первое поле - это ID пользователя. То, чего я пытаюсь добиться, это отображать имя в верхней части поля, где они вводят свои номера, но я не уверен, как это сделать. Я думал о том, возможно, как-то обновить страницу, когда пользователь вкладывает / кликает за пределы поля, но я не знаю, будет ли более эффективный способ рендеринга в режиме реального времени, если пользователь заполнит другие поля раньшеих поле ID #.

В настоящее время у меня есть это в моих представлениях, чтобы получить имя пользователя на основе их #, но я не уверен, как использовать это в части HTML, или если что-то еще нужнобыть тоже измененным

views.py

def get_e_name(request):
    e_number = request.POST.get('e_number')
    e = Saved.objects.get(a_number=e_number)
    e_name = e.saved_name
    return e_name

Я хотел бы отобразить e_name, которое get_e_name () возвращает поверх первого поля в форме, как только онозаполняется

enter_leave_area.html

{% extends "operations/base.html" %}
{% block main %}
    <form id="warehouseForm" action="" method="POST" data-stations-url="{% url 'operations:ajax_load_stations' %}" novalidate >
        {% csrf_token %}

        <div>
            <div>
                {{ form.e_number.help_text }}
                {{ form.e_number }}
            </div>
            <div>
                {{ form.w_area.help_text }}
                {{ form.w_area }}
            </div>
            <div>
                {{ form.s_number.help_text }}
                {{ form.s_number }}
            </div>
        </div>

        <div>
            <div>
                <button type="submit" name="enter_area" value="Enter">Enter Area</button>
                <button type="submit" name="leave_area" value="Leave">Leave Area</button>
                <div></div>
            </div>
        </div>
    </form>

    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script>
        $("#id_w_area").change(function () {
            var url = $("#warehouseForm").attr("data-stations-url");
            var wAreaId = $(this).val();

            $.ajax({
                url: url,
                data: {
                    'w_area': wAreaId
                },
                success: function (data) {
                    $("#id_s_number").html(data);
                }
            });
        });
     </script>
{% endblock main %}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...