Django render не обновляет контекст
Я использую FullCallendar (пакет node) для отображения календаря, я хочу отображать данные о событии в этом календаре при нажатии на него, что обрабатывается следующей функцией:
eventClick: function(info) {
$.ajax({
type: 'GET',
url: 'get_lesson_by_id/',
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
data: {
current_id: info.event.id
},
success: function (res) {
$("#signupModal").modal('show');
}
})
}
Это посылает запрос в мое представление, где я хочу обновить контекст:
def get_lesson_by_id(request):
lesson_id = request.GET['current_id']
lesson = get_object_or_404(Lesson, pk=lesson_id)
print(lesson.to_dict())
return render(request, 'agenda/agenda.html', lesson.to_dict())
Все это работает отлично, пример того, что печатает представление, следующий:
{'lesson_id': 2, 'lesson_title': 'Vioolbouwweek', 'lesson_begin_date': datetime.date(2022, 6, 3), 'lesson_end_date': datetime.date(2022, 6, 9), 'lesson_begin_time': datetime.time(9, 0), 'lesson_end_time': datetime.time(19, 0), 'lesson_description': 'Lorem ipsum dolor sit
amet, consectetur adipiscing elit. Morbi lobortis neque vitae tempus ullamcorper. Ut ac dolor euismod, congue tortor eu, suscipit nunc.
Fusce vulputate diam condimentum sem interdum fringilla. Suspendisse vitae justo vulputate, laoreet lacus quis, mattis lectus. Mauris tincidunt sit amet velit vel ultrices. Quisque tincidunt enim eu viverra dictum. Duis malesuada hendrerit ante nec commodo. Mauris condimentum, mi id gravida pretium, ante ex mollis leo, eu elementum orci lorem molestie neque.', 'lesson_type_name': 'Vioolbouwweek', 'lesson_duration_days': 7, 'lesson_teachers': ['Rob Stemerding']}
Однако, когда я пытаюсь использовать эти новые контекстные переменные в шаблоне, например, так:
{{ lesson_id }}
все они абсолютно ничего не показывают.
Я попробовал посмотреть {% debug %}
и контекстные переменные отображаются следующим образом:
<Var token: "lesson_title...">, <Text token: " ...">] plural=[]>, <TextNode: '\n </h3>\n '>, <Variable Node: lesson_id>, <TextNode: '\n '>, <Variable Node: lesson_teachers>, <TextNode: '\n </div>\n <'> etc...
Купить Я думаю, что это просто информация о том, где я пытаюсь использовать тег.
Теперь, когда я набрался сил, позвольте мне сделать еще одну попытку. Итак, похоже, что вы отправляете шаблон на рендеринг, но в вашей функции success вы никогда ничего с ним не делаете. Все, что вы делаете, это открываете модальное окно.
вам нужно сделать что-то вроде $("#whatever div is").html(res) затем открыть модальное окно
Просмотрите номер 14 в этом ответе: Bootstrap 3 - Как загрузить содержимое в модальное тело через AJAX?