Я пытаюсь реализовать пейджинг через вызовы ajax.Страница не должна обновляться, когда пользователь хочет увидеть следующее число результатов.
Вот моя проблема.Возврат QuerySet очень прост.Я просто делаю (sumaJson настраивается)
data = serializers.serialize('sumaJson', result_page.object_list, relations=('first_major', 'country_of_origin', 'second_major'))
return HttpResponse(data, mimetype="application/json")
Теперь я также хочу вернуть такие вещи, как
result_page.has_previous()
result_page.has_next()
result_page.paginator.count
и так далее.Я за всю свою жизнь не могу понять, как объяснить оба в одном ответе.Я не могу добавить эту информацию в result_page.object_list, потому что тогда не работает сериализатор.Если я что-то вроде
simplejson.dumps(paging_info + result_page.object_list)
, тогда в javascript QuerySet больше не является списком объектов, а представляет собой просто большую строку символов, которые нельзя интерпретировать с помощью
$.each(data.data, function(index, item){
Я попробовал несколько плохих хаков, таких как создание поддельного объекта и помещение его в список_объектов, сериализация и последующее удаление объекта.Это позволяет мне передавать данные.Однако я не хочу создавать и удалять поддельные объекты.
Я не хочу вмешиваться в сериализатор.Я не хочу отправлять второй ajax-запрос, как только я получаю набор запросов обратно, чтобы получить информацию о подкачке.
Я что-то упустил?Есть ли простой способ донести их до одного ответа?Спасибо!