Как вернуть связанное значение из базы данных после щелчка функции ajax в django?
html
<div>
{{ productform.vendorid|as_crispy_field }}<a id="vendor_id_search" class="btn btn-info">search</a></br>
<div style="display:none;" id="show_vendorname">hjkh</div><br>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$("#vendor_id_search").click(function (event) {
event.preventDefault();
var vendor_id = $("#id_vendorid").val();
$.ajax({
url: '/ajax/find_vendorname/',
method: 'GET',
data: {
'vendor_id': vendor_id
},
dataType: 'json',
success: function (data) {
$("#show_vendorname").show(data)
}
});
});
views.py
#vendor_name_find_ajax
def find_vendorname(request):
if request.is_ajax():
vendorid = request.GET.get('vendor_id', None)
username = CustomUser.objects.filter(first_name=vendorid)
return username
Я хочу отобразить связанное имя из таблицы базы данных для этого vendorid после того, как пользователь ввел поле vendorid и нажал на кнопку, связанное имя должно быть отображено на этом конкретном div. Здесь я допустил ошибку и не знаю, как получить это значение. пожалуйста, кто-нибудь, сделайте нужное.
$("#show_vendorname").show(data)
снимите скрытие div, но не вставляйте данные.
Вам необходимо установить данные перед этим с помощью $.html()
$("#show_vendorname").html(data).show()
EDIT:
Кроме того, ваше представление должно возвращать HttpResponse
:
from django.http import HttpResponse
def find_vendorname(request):
if request.is_ajax():
vendorid = request.GET.get('vendor_id', None)
username = CustomUser.objects.filter(first_name=vendorid)
return HttpResponse(username)