“无法解析提醒错误”-Django

时间:2019-05-13 14:38:02

标签: javascript python django view angularjs-events

当jsevent触发时,它将链接参数转发到按钮的data-url属性,当用户单击该按钮时,它将重定向到django后端视图,但是JS的解析行存在问题
$('#btn_del')。attr('data-url',{% url 'event_delete' + event.id + %}); 有没有机会结合使用该语法? 谢谢你,祝你愉快。

JS:

  eventClick: function(event, jsEvent, view) {
          $('#modalTitle').html(event.id);
          $('#btn_del').attr('data-url',`{% url 'event_delete' ` + event.id + `%}`);
          $('#calendarEditModal').modal();
          console.log(event.id);
        }

url.py

....
url(r'^event/(?P<pk>\d+)/delete/$', event_delete, name='event_delete'),
....

重定向到Django的HTML按钮

<button id="btn_del" type="button" class="btn btn-primary js-delete-events" data-url="">
          <span class="glyphicon glyphicon-pencil"></span>
          Edit
        </button>

结果应该类似于这种格式 event.pk将成为我们的参数数值,没关系。

    <button type="button" class="btn btn-primary js-delete-events" data-url="{% url 'event_delete' event.pk %}">
      <span class="glyphicon glyphicon-plus"></span>
      button
    </button>

/event/1/update/  is the last result of seen from browser inspect. But I need to write inside jsEvent with django syntax to able to reach backend view which is {% url 'event_delete' event.pk %} something like that.

1 个答案:

答案 0 :(得分:1)

否,无法以这种方式完成...模板({% url %}标记)的解析是在服务器上完成的,甚至在浏览器未收到任何内容之前。浏览器不知道您在使用什么模板标签。

另一方面,JavaScript是在浏览器中执行的,因此模板语言也不了解其中的变量。

解决方案是使用类似Django JS Reverse的软件包。第二个方法是将完整的URL传递给JavaScript,就像它收到项目的ID一样。