Частичный рендеринг шаблона Django не обновляет страницу, но отображается в консоли
У меня есть веб-страница на основе django, над которой я работаю (Django версии 5.0). Эта страница позволяет нажимать на элемент в таблице, и предполагается отображать подпункты, связанные с этим элементом, без перерисовки всей страницы. Хотя мой подшаблон виден Django и используется, вместо обновления части html на странице, результирующий html вываливается в консоль. Вот некоторые фрагменты кода:
main.html содержит, помимо всего прочего, следующее место, где я хочу разместить содержимое:
{% include '_subtemplate.html' %}
_subtemplate contains:
{% for subitem in subitems %}
<tr>
<td><a onclick='mySubItemClick("{{ subitem.date }}")'>{{ subitem.date }}</a></td>
<td>{{ subitem.my_note }}</td>
</tr>
{% endfor %}
views.py содержит:
def get_my_subitems(requests, site_id):
subitems = # code to get a list of objects
return render(request, '_subtemplate.html', { 'subitems': subitems })
urls.py содержит правильную запись пути в urlpatterns:
path('myitems/mysubitems/<int:site_id>/', views.get_my_subitems, name='get_my_subitems'),
У меня есть файл javascript, содержащий метод, который делает рабочий вызов ajax, где 'path: /myitems/mysubitems/' + obj.site_id
Вместо того чтобы видеть, как мой список содержимого подпунктов перезагружается на html-странице, когда я открываю консоль браузера, я вижу там правильно скомпонованный html, а не на странице.
<tr>
<td><a onclick='mySubItemClick("June 13, 2024")'>June 13, 2024</a></td>
<td>misc notes...</td>
</tr>
В консоли javascript и на сервере django ошибок нет. Очевидно, что я получаю данные и правильно их форматирую, но include
кажется, что в конце он сбивается.
Ну, я не хотел этого делать, и я не понимаю, почему я не могу использовать вышеупомянутое, но просто использование ответа от вызова ajax и выполнение append работает:
$('#subitems tbody').append(resp);
Мне не нравится этот ответ, поскольку он, кажется, избегает самой силы шаблонизации django и переносит эту обработку в javascript.