Фрагмент html-шаблона не обновляется корректно при работе с ajax
У меня есть шаблон Django, который отображает иерархию рабочих, используя библиотеку django mttp.
{% extends "base.html" %}
{% load static mptt_tags %}
{% block content %}
<ul class="root" >
<button type="button" id="full-button">Click</button>
{% recursetree object_list %}
<li>
{{node.first_name}} {{node.last_name}} {{node.middle_name}}
{% if not node.is_leaf_node %}
<ul class="children" id="update">
{{ children }}
</ul>
{% endif %}
</li>
{% endrecursetree %}
</ul>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="{% static "scripts/treeOpen.js" %}"></script>
{% endblock content %}
При первой загрузке страницы отображаются только первые два уровня иерархии. Задача состоит в том, чтобы реализовать ленивую загрузку, чтобы пользователь щелкнул на кнопке и только после этого загрузились все уровни.
Я пытаюсь сделать это с помощью Ajax
$(document).ready(function () {
$('#full-button').click(function (event) {
console.log("work")
openFull();
});
function openFull() {
$.ajax({
url: '/tree/',
method: 'GET',
data: { 'full': 1 },
success: function (data) {
console.log('success')
$('.root').html(data);
},
error: function (xhr, textStatus, errorThrown) {
console.log('Error ajax request: ' + errorThrown);
}
});
}
});
и на самом деле, в консоли у меня успешное подавление базы данных, то есть ajax работает корректно, но фрагмент кода обновляется некорректно.
У меня такая проблема, как на экране
Пожалуйста, скажите мне, кто более компетентен в этом вопросе.
Я также попробовал сначала очистить фрагмент с помощью метода empty
$('.root').empty();
или
$('.root').html('');
$('.root').html(data);
но ничего не помогает.