I creating a django program using 'google-map api'.
'mapinit(json-data)' is read from '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>
outer javascript have some action such as ajax, redirect.
Right now I am writing the url directly.
// 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.';
});
I want using this.
console.log("{% url 'index_search' '2' %}")
I want.
/gmarker/search/2
but chrome output is ... Come is same one.
{% 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'),
]
outer javascript is can't read template tag??
Yes, external javascript cannot use template variables. What you need to do is to send data from internal javascript like. In mymap.html
Now, in map.js
Extra: You may need to escape variables to prevent some attacks