gpt4 book ai didi

javascript - 如果使用外部 javascript,模板标记 'url' 不起作用

转载 作者:行者123 更新时间:2023-11-28 03:03:38 25 4
gpt4 key购买 nike

我使用“google-map api”创建了一个 django 程序。
“mapinit(json-data)”是从“map.js”读取的

<body onload="mapinit('{{ data }}')">

<!-- create a map area with shop information -->
<div class="wrapper">
<div id="shopinfomation"></div>
<div id="map_canvas1" style="width: 500px; height: 500px"></div>
</div>

<!-- post action from html is ok! -->
<h3>category 1</h3>
<form class="specific_form" action="{% url 'index_search' '1A' %}" method="POST">
{% csrf_token %}
<input type="submit" class="btn-flat-border" value="ramen" /> search ramen shops
</form>

外部 javascript 有一些操作,例如 ajax、重定向。
现在我直接写url。

// get a shop detail
$.ajax({
type: "POST",
url: "/gmarker/search/detail/" + json.shops[i]['place_id'],
beforeSend: function(xhr, settings) {
xhr.setRequestHeader("X-CSRFToken", Cookies.get('csrftoken'));
}
}).done(function(data){
shopinfomation.innerHTML = 'ajax success. shop information...';
}).fail(function(){
shopinfomation.innerHTML = 'ajax error.';
});

我想用这个。

console.log("{% url 'index_search' '2' %}")

我想要。

/gmarker/search/2

但是 chrome 输出是...来的是相同的。

{% url 'index_search' '2' %}
urlpatterns = [
path('', views.index, name='index'),
path('search/<str:searchcode>', views.index, name='index_search'),
path('search/detail/<str:place_id>', views.searchdetail, name='detail_search'),
path('result/<str:searchcode>', views.index, name='index_result'),
]

外部 javascript 无法读取模板标签?

最佳答案

是的,外部 JavaScript 不能使用模板变量。你需要做的就是从内部 javascript 发送数据。 在 mymap.html

<script>
var TemplateVar = {
my_url: "{% url 'index_search' '2' %}"
}
</script>
<script src="{% static 'js/map.js' %}"></script>

现在,在map.js

    my_url = TemplateVar.my_url;      // Taking json attribute from script of mymap.html
console.log(my_url); // You should get what you are expecting

额外:您可能需要转义变量以防止某些攻击

关于javascript - 如果使用外部 javascript,模板标记 'url' 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60784760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com