Ajax GET / POST Django, не совсем уверен, что делать с данными

0

Я пытаюсь выполнить запрос на странице с помощью AJAX. Бэкэнд использует Django. Мой javascript выглядит так:

$(function(){
    $("#form").submit(function(event){
        event.preventDefault();
        var query = ($("#input-field").val());
        $.ajax({
            type: "GET",
            url:"{% url 'search_building' %}",
            data: {
                'csrfmiddlewaretoken': '{{ csrf_token }}',
                'q': query
            },
            success: function(data) {
                $("#search-results").html(data);
            }
        });
    });
});

Вся страница проходит и добавляет # search-results, где, поскольку я просто хочу, чтобы результаты были получены из таблицы.

Я также немного смущен тем, должен ли я использовать GET или POST с Ajax и должен ли я использовать токен csrf.

Очень признателен.


Я понял!

На моей исходной странице использовался один вид, один URL-адрес и шаблон, который возвращал все результаты запроса

Я хотел использовать язык шаблонов Django, поэтому мне не нужен вывод в json, а затем для написания javascript для обработки вывода.

Поэтому я создал второй шаблон для рендеринга только моих результатов, представление для обработки запроса, а затем использовал ajax для обработки отправки запроса в новое представление и отображения результатов нового шаблона в старый.

  • 1
    Im also a little confused about whether I should use a GET or POST with Ajax, and whether I should be using csrf token. Все это будет зависеть от того, что требует конечная точка, которую вы вызываете.
  • 0
    Я не уверен, что вас смущает. Если вы отправляете данные для обновления базы данных, используйте POST; если вы запрашиваете данные для обновления страницы, используйте GET. И если вы просто хотите, чтобы содержимое таблицы было отправлено, вы должны написать свое представление, чтобы отправить только эту часть.
Показать ещё 3 комментария
Теги:

1 ответ

0

Попробуйте вернуть ответ из бэкэнд в формате json. Это позволит очень легко использовать данные ответа, и вы можете использовать его, как вам нравится.

Причина загрузки всей страницы заключается в том, что вы создаете шаблон с контекстом.

Для запроса ajax ответ в формате json предпочтительнее для обработки данных.

Кроме того, если вы хотите записать в базу данных, например новый экземпляр, что-то вроде этого, используйте запрос POST. Вместо этого все, что вам нужно, - это вызвать api для некоторого запроса или ситуаций, когда вы ожидаете, что api предоставит данные, вы можете использовать запрос GET.

Это моя версия того, что я узнал. Надеюсь, ты получил то, что попросил.

  • 0
    @ Фазиль бен Заид Спасибо за помощь! Вы бы порекомендовали написать представление, которое обрабатывает как шаблон, так и json с помощью is_ajax ()?
  • 0
    Попробуй и попробуй и попробуй ... Это единственный способ учиться ... !!
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню