Django: запись JavaScript внутри шаблона против его загрузки - PullRequest
0 голосов
/ 09 января 2020

Я использую JavaScript, чтобы добавить комментарий без обновления страницы. Когда я использую JavaScript внутри шаблона, он работает отлично, но если я записываю JavaScript в файл и загружаю файл внутри шаблона, тогда он не отображает имя человека, который написал комментарий ( отображает комментарий в порядке). Ниже JavaScript, который я использовал внутри шаблона:

image

В приведенном выше коде <b style="color:rgb(240, 0, 0);"> {{user.first_name}} {{user.last_name}}</b> используется для отображения имени. Он отображает имя человека, который добавил комментарий, но когда я копирую ту же функцию в комментарии. Файл js и загружает файл как <script src="{% static 'scripts/comments.js' %}"></script>, тогда имя не отображается, вместо этого отображается {{пользователь. first_name}} {{user.last_name}} . Я использую этот javascript на нескольких страницах, и я подумал, что лучше записать в файл и загрузить файл, а не писать один и тот же скрипт на каждой странице. Может ли кто-нибудь помочь мне с этим?

1 Ответ

2 голосов
/ 09 января 2020

{{ dictionary.key }}, et c в шаблоне - это то, как вы используете переменные с механизмом шаблонов django.

Файл stati c javascript не является шаблоном. Он не обрабатывается механизмом шаблонов django.

Поместите нужные значения в html (через механизм шаблонов), откройте их из JS.

Basi c идеи:

  • Создайте переменную JS (например: <script>var user_full_name = "{{ user.user_name }} {{ user.last_name }}"</script>), используйте user_full_name внутри обратного вызова ajax sucess.

  • Поместите значения в некоторый элемент html (например: <input type="hidden" id="user_name" value="{{ user.user_name }}">) и получите его с помощью JS / jQuery $("#user_name").val().

edit: добавлено пропущено закрывающая двойная кавычка к объявлению user_full_name.

...