Я пришел из истории Rails, поэтому вопрос может показаться глупым.В Rails, когда мы создаем Ajax-запрос, мы можем обновить представление, визуализируя частичное с помощью селектора javascript, как показано ниже:
$("#dashboardEmails").html("<%=j render partial: 'emails', locals: {emails: @emails} %>");
Как я могу сделать это в шаблоне Django?Я пробовал следующее:
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize() + "&submit=connect",
success: function (data) {
if(data['tables'].length > 0){
$('#data-connection-info').html("{% include 'projects/connection_info.html' with data='"data"' %}");
}
console.log(data);
},
error: function (data) {
console.log("Error");
}
});
Здесь я хочу обновить представление с помощью шаблона projects/connection_info.html
, также передавая переменную javascript ( data ) в шаблон, используя with
.Но это не работает.
Есть идеи, как мне этого добиться?
ОБНОВЛЕНИЕ
Я передал шаблон из вида, как:
template = render_to_string('projects/connection_info.html', json_data)
return HttpResponse(json.dumps(template), content_type='application/json')
Затем в ajax success функция обновляет DOM:
success: function (data) {
$('#data-connection-info').html(data);
}
Таким образом, проблема решена.:)