简体   繁体   English

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

[英]“Could not parse reminder error” - django

When jsevent triggered , it forwards link parameter to data-url attribute of a button and when user click that button it redirects to django backend view but there is a problem with parsing line of JS 触发jsevent时,它将链接参数转发到按钮的data-url属性,并且当用户单击该按钮时,它将重定向到django后端视图,但是JS解析行存在问题
$('#btn_del').attr('data-url', {% url 'event_delete' + event.id + %} ); $('#btn_del')。attr('data-url', {% url 'event_delete' + {% url 'event_delete' + %} ); is there any chance to combine that syntax ? 有没有机会结合使用该语法? Thank you , have a nice days. 谢谢,祝你有美好的一天。

JS: 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.py

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

Html button that redirects to django 重定向到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>

Result should be like this format event.pk is going to be our parameter numeric value , it's ok. 结果应该类似于这种格式 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.

No, it cannot be done that way... Parsing of your templates (the {% url %} tag) is done on the server before even the browser receives anything. 不,不能那样做...模板( {% url %}标签)的解析是在服务器上完成的,甚至在浏览器未收到任何内容之前。 Browser doesn't know what template tags are you using. 浏览器不知道您在使用什么模板标签。

On the other side, JavaScript is executed in the browser, so template language has also no knowledge about variables inside it. 另一方面,JavaScript是在浏览器中执行的,因此模板语言也不了解其中的变量。

Solution for that is to use a package like Django JS Reverse . 解决方案是使用像Django JS Reverse这样的包。 The second one is to pass full URL to the JavaScript, just like it receives the ID of the item. 第二个方法是将完整的URL传递给JavaScript,就像它收到项目的ID一样。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM