Рендеринг шаблона Django после AJAX POST

Я использую django и ajax для создания небольшого приложения.

Я отправляю некоторые данные с помощью ajax:

// send search post when clicking the button
$("#search-button").click(function(){
    $.post(
        "{% url 'search-index' %}",
        {
            query: $("#query").val()
        },
        function(data, status){
            console.log("success")
        }
    )
})

И я генерирую некоторые новые данные в соответствии с query, которые я хотел бы отобразить в html шаблоне:

def view(request):
    if request.method == "POST":
        query = request.POST["query"]
        hits = search(query)

        return render(request, "search/index.html", {"hits": hits})
{% if hits %}
    <div class="container">
    {% for hit in hits %}
        <div>
            <a href="">{{ hit.title }}</a>
        </div>
        <div>
            <p>{{ hit.abstract }}</p>
        </div>
    {% endfor %}
    </div>
{% endif %}

Однако, я обнаружил, что django не отображает шаблон, я получил пустую html страницу после этого запроса. Я не хочу добавлять данные с помощью jquery. Я предпочитаю изменять html в шаблоне.

Есть ли решение? Заранее спасибо.

Я обнаружил, что это на самом деле невозможно. Шаблон django отрисовывается на стороне сервиса, а ajax разбирается на стороне клиента и является асинхронным.

Вернуться на верх