Здесь я пытаюсь выполнить поиск с помощью ajax и jquery с моим django представлением. Когда я пытаюсь выполнить такой поиск, возвращая JsonReponse
вместо html_template, он не возвращает данные ниже соответствующего id
в html
Но когда я возвращаю html из django представления и создайте новый html для этих результатов поиска, и включение этого шаблона в исходный шаблон работает отлично, но я считаю, что это более длительный процесс, поэтому я попытался вернуть json ответ от просмотра и использовать объекты json в шаблоне, как это, но это не работает.
Как я могу решить это? Я думаю, что мне нужно работать на ajax части.
def search_users(request):
q = request.GET.get('q')
if q:
users = get_user_model().objects.filter(is_active=True).filter(profile__full_name__icontains=q)
data = {'users': users}
else:
users = get_user_model().objects.filter(is_active=True)
data = {'users':users}
return JsonResponse(data)
ajax
$(function() {
$('#search_users').keyup(function() {
$.ajax({
type: "GET",
url: "{% url 'dashboard:search_users' %}",
data: {
'q' : $('#search_users').val(),
},
success: searchSuccess,
dataType: 'json'
});
});
});
function searchSuccess(data, textStatus, jqXHR)
{
$('#search_users_results').json(data) #doing html instead of json works after returning html from django view
}
В терминале
TypeError: Object of type QuerySet is not JSON serializable
[15/Mar/2020 14:02:53] "GET /admin/dashboard/search/users/?q=tyj HTTP/1.1" 500 22660