Django中如何将javascript中的变量传给位于javascript内的{% url %}中的参数?

新手上路,请多包涵
    <script type="text/javascript">
        function publish_article(){
            var title=$("#id_title").val();
            var column_id=$("#which_column").val();
            var body=$("#id_body").val();
            $.ajax({
                url:"{% url 'article:article_post' %}",
                type:"POST",
                data:{"title":title,"column_id":column_id,"body":body},
                success:function (e) {
                    e=JSON.parse(e);
                    if(e["e"]=="1"){
                        layer.msg("successful.");
                        location.href="{% url 'article:article_detail' id=e["id"] slug=e["slug"] %}";
                    }else if(e["e"]=="2"){
                        layer.msg("sorry.");
                    }else{
                        layer.msg("项目名称必须写,不能空");
                    }
                },
            });
    }
    </script>

这是我的Django的页面下的javascript代码;
location.href="{% url 'article:article_detail' id=e["id"] slug=e["slug"] %}";这里拿不到e这个变量!!!!!怎么破????求教各位大神

阅读 6.9k
2 个回答
新手上路,请多包涵

因为url 是渲染页面的时候就需要传参,而你这个是调用js之后才会有值,所以把id 和 slug 先给个固定值。
比如 {% url ‘article:article_detail’ id=0000 slug="slug" %}
然后就会渲染成一个article/article_detail/0000/slug/ 这样的url 。然后用javascript 去替换一下。
url.replace(/0000/,id) 类似这样。。。。

新手上路,请多包涵

个人觉得楼上说的没问题

var id = res.id;
var url = "{% url 'user:user_edit' 'id' %}";
url = url.replace('id', id);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题