{% csrf_token %} печатает как текст из js-файла django

введите описание изображения здесь{% csrf_token %} печать в виде текста из js-файла в Django, код работает, если использовать его в теге скрипта, но когда я пытаюсь использовать из внешнего js-файла, он не работает

HTML

<div class="build">BUILD  YOUR  RESUME</div>
<div class="box container" id="box2">
    <div class="skillbox">
        <div class="workquestion">
            How Many work Exprience you wanted <br> to add in your resume ?
        </div>
        <div class="row" id="butt">
          <div class="form-group col-md-2">
              <button type="button" class="btn btn-success" onclick="updateform(1)" id="butt1">1</button>
          </div>
          <div class="form-group col-md-2">
              <button type="button" class="btn btn-success" onclick="updateform(2)" id="butt2">2</button>
          </div>
          <div class="form-group col-md-2">
              <button type="button" class="btn btn-success" onclick="updateform(3)" id="butt3">3</button>
          </div>
          <div class="form-group col-md-2">
              <button type="button" class="btn btn-success" onclick="updateform(4)" id="butt4">4</button>
          </div>
          <div class="form-group col-md-2">
            <button type="button" class="btn btn-success" onclick="updateform(5)" id="butt5">5</button>
        </div>
        <div class="workquestion" style="color: red;">
            Maximum
        </div>
        </div>
        <div class="row" >
            <div class="form-group col-md-2">
                <button type="button" class="btn btn-success" onclick="updateform(6)" id="butt6">6</button>
            </div>
            <div class="form-group col-md-2">
                <button type="button" class="btn btn-success" onclick="updateform(7)" id="butt7">7</button>
            </div>
            <div class="form-group col-md-2">
                <button type="button" class="btn btn-success" onclick="updateform(8)" id="butt8">8</button>
            </div>
            <div class="form-group col-md-2">
                <button type="button" class="btn btn-success" onclick="updateform(9)" id="butt9">9</button>
            </div>
            <div class="form-group col-md-2">
              <button type="button" class="btn btn-success" onclick="updateform(10)" id="butt10">10</button>
          </div>
          <div class="workquestion" style="color: red;">
            10 Skills
        </div>
          </div>
</div>

Скрипт

<script src='{% static "js/skill.js" %}'>
     </script>

skill.js

function updateform(n){
    var temp=`<div class="heading">
  <h2 class="head">Tell us about your Skills</h2>
<form method="POST" action="/skill">{% csrf_token %}`
for(var i=1;i<=n;i++){
    temp=temp+`<div class="form-row">
        <div class="form-group col-md-3">
      </div>
      <div class="form-group col-md-6">
        <label for="inputEmail4">Skill ${i}</label>
        <input type="text" class="form-control" id="skill${i}" name="skill${i}" placeholder="Skill" required>
      </div>
    </div>`
}
temp=temp+`<button id='b1' type="submit" class="btn btn-primary nextbtn">Next</button>
  </form>
</div>`
document.getElementById('box2').innerHTML=temp
}

person Vardhman Jain    schedule 15.09.2020    source источник
comment
.js файлы предоставляются как есть, а не предварительно обрабатываются, как HTML-шаблоны/представления. Существует несколько решений для передачи данных сервера клиенту: размещение встроенного скрипта в вашем HTML или запрос данных через ajax — два из них.   -  person Chris G    schedule 15.09.2020
comment
Отвечает ли это на ваш вопрос? Передача данных Python в JavaScript через Django   -  person Chris G    schedule 15.09.2020
comment
Да, это работает в теге сценария. Можете ли вы рассказать подробнее о методе Ajax?   -  person Vardhman Jain    schedule 15.09.2020
comment
Вы не можете поместить синтаксис шаблона django в файл .js. Вы должны получить значение файла cookie CSRF и сделать это таким образом, если вам нужно, чтобы JS делал это.   -  person markwalker_    schedule 15.09.2020


Ответы (1)


Вы обрабатываете файл JS в Django как шаблон?

Вместо того, чтобы ссылаться на ресурс непосредственно в вашем скрипте в указанном месте, вам нужно будет вместо этого ссылаться на URL-адрес Django, который обрабатывает файл как шаблон, а затем возвращает обработанный контент (исходный текст...) тебе.

person Mike Robinson    schedule 15.09.2020