Рендеринг шаблона 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 разбирается на стороне клиента и является асинхронным.