我正在使用ajax数据将信息传递给我的页面,但是我需要创建一些使用javascript中的数据来调用视图的链接,因此参数通常在{% url 'jobs:close' foo %}
执行时传递,例如,在呈现模板时不可用,但稍后通过ajax调用导入。显然,这会在渲染模板时导致错误。
有没有办法在这种情况下保持反向URL查找的好处,并在不传递foo
的情况下动态获取模板中的URL,或者我是否需要在模板中硬编码URL将参数粘贴到最后?
答案 0 :(得分:1)
不要在ajax响应中获取'foo',而是在ajax响应中获取反向url并替换需要url的DOM。
答案 1 :(得分:0)
在考虑了它并查看评论之后,我决定添加一个假参数并在之后将其删除。由于在呈现表单时将删除它,因此参数并不重要。我选择了1
。
所以,在我的模板中,我放了{% url 'jobs:close' '1' %}
。然后在我的javascript中,当我在模态中调用表单时,我使用jquery来查找表单。只需再次使用相同的URL就可以了,所以这里是:
var modal = $("#modal");
var closeUrl = '{% url 'jobs:close' '1' %}';
closeUrl = closeUrl.substring(0, closeUrl.length - 2) + event.data.id + /;
modal.find("#close-job").attr('action', closeUrl);
event.data.id
是我存储我真正需要的工作ID的地方。
它并不像我想要的那样光滑,但效果很好。