【发布时间】:2017-12-25 07:45:06
【问题描述】:
我正在寻找一种在提交表单后输出表单输入(在 div 中)的方法。经过大量研究,我找不到解决方案。我想我需要使用 AJAX,但不确定。有没有合适的 Django 方法来完成这项工作,还是我需要使用 AJAX?
AJAX 是这样的吗?
<script>
var xhr = new XMLHttpRequest();
xhr.open('GET', '???');
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
document.getElementById('ajax').innerHTML = xhr.responseText;
}
};
function sendAJAX() {
xhr.send();
}
</script>
views.py
def scan_product_view(request):
if request.method == 'POST':
form = forms.ScanProductForm(request.POST or None)
if form.is_valid():
barcode_input = form.cleaned_data.get("barcode_input")
amount_input = form.cleaned_data.get("amount_input")
p = AddProduct.objects.get(barcode=barcode_input)
p.sold = F("sold") + amount_input
p.stock_amount = F("stock_amount") - amount_input
p.save()
messages.success(request, '%s was successfully scanned' %p.title)
return HttpResponseRedirect('/scan/')
else:
form = forms.ScanProductForm()
return render(request, 'scanapp/barscan.html', {'form': form})
模板html
{% block content %}
<div class="scan-form-master">
<form method="POST" action="">
{% csrf_token %}
<div class="scan-con">
<div>
<div class="scan-form">
{{ form }}
<input type="submit" class="btn btn-primary" value="Add">
</div>
<div class="conf-btn">
<div id="load" onclick="sendAJAX()">
<p>* I want to show the input of the above field input here after the client hit the Add button.</p>
</div>
<p><input type="submit" class="btn btn-danger" value="Print PDF">
<input type="submit" class="btn btn-success" value="End session"></p>
</div>
</div>
</div>
</form>
</div>
{% endblock %}
【问题讨论】:
标签: ajax django django-forms django-queryset