вернуть JSON-запрос для поиска - PullRequest
0 голосов
/ 27 апреля 2019

Я пытаюсь написать функцию для поиска и отображения ее результата в формате JSON для пользователя.

В настоящее время я успешно выполняю поиск по базе данных, и я могу найти и вывести список данных из базы данных в атрибуте products. Но у меня есть проблема отображения результатов, когда я возвращаю список продуктов из базы данных.

def search_titles(request):

    if request.method == "POST":
        search_text = request.POST['search_text']
    else:
        search_text =  ''

    products = Product.objects.filter(title__contains = search_text)

    return HttpResponse(json.dump(products), content_type = 'application/json')

Я не могу отобразить результаты пользователю. Как вернуть список товаров и отобразить элементы?

1 Ответ

0 голосов
/ 27 апреля 2019

Я бы посмотрел на jsonresponse :

def search_titles(request):

    if request.method == "POST":
        search_text = request.POST['search_text']
    else:
        search_text =  ''

    products = Product.objects.filter(title__contains = search_text)
    products = list(products)  # important: convert the QuerySet to a list object

    return JsonResponse({'products':products})

С HttpResponse:

def search_titles(request):

    if request.method == "POST":
        search_text = request.POST['search_text']
    else:
        search_text =  ''

    products = Product.objects.filter(title__contains = search_text)
    products = serializers.serialize('json', products)

    return HttpResponse(json.dumps(products), content_type = 'application/json')

Примечание: я использовал json.dumps (), а не json.dump (), которому нужен файловый объект и дамп в него JSON.

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