У меня есть форма, в которой первое поле - это 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 %}