Задать вопрос
lleviy
@lleviy

Как правильно вернуть массив из views в шаблон при AJAX запросе?

У меня есть следующая ajax-функция, которая считывает значение поля input и отправляет его в view, во view я из этого значения формирую массив url-ов и хочу вернуть его обратно в шаблон. Функция верно считывает значение, view также правильно формирует массив.
Проблемы начинаются при выводе массива в шаблоне. Моя view возвращает в поле div id="results" не только массив, но и всю страницу html. Получается страница в странице. И это логично, потому что в view я действительно передаю весь шаблон new_topic.html, - я не знаю, как можно передать только лишь один массив.

$(function(){
    $("#search_btn").click(function () {
        q = $( "#search" ).val();
        if (q!=''){
            var s = 'search_photos/'
            $.get(s, {'q': q}).done(function (data) {

                $( '#results').html(data);

            });
        }
    });
});


views.py:

def search_photos(request):
    if request.method == 'GET':
        q = request.GET.get('q')
        photos_url = []
        #Здесь формирую массив photos_url
            return render(request, 'myapp/new_topic.html', {'photos_url':photos_url})
    return render(request, 'myapp/new_topic.html', {})


new_topic.html:

<input id="search" name="q" type="text" class="form-control" placeholder="Поиск">
 <input name='submit_s' id='search_btn' type='button' value='poisk' />
    <div id="results"> Сюда хочу вывести обработанный список url-ов </div>
  • Вопрос задан
  • 627 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
netpastor
@netpastor
Python developer
from django.http import JsonResponse
def search_photos(request):
    if request.method == 'GET':
        q = request.GET.get('q')
        photos_url = []
        #Здесь формирую массив photos_url
        return JsonResponse(photos_url)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы