#index.html function plot_to_map(){ plot_marker=new L.GeoJSON.AJAX("http://127.0.0.1:8000/world/geojson/", { onEachFeature:function(feature,layer){ if(feature.properties){ var popupString="<div class='popup'><a href='javascript:show_facility_detail(" + feature.properties.pk + ")'>" + feature.properties.evacuation_site + "</a></div>"; layer.bindPopup(popupString); } } }); mymap.addLayer(plot_marker); } function show_facility_detail(id){ var facility_url="http://127.0.0.1:8000/world/" + id; console.log(id); $.getJSON(facility_url,function(data){ var detailrow=data.properties.evacuation_site }); }
urls
1 2from django.urls import path 3from world import views 4from django.conf.urls import include, url 5 6app_name='world' 7 8urlpatterns=[ 9 path('',views.index,name='index'), 10 path('world/geojson/api',views.GeojsonAPIView.as_view(),name='geojson_view'), 11 path('world/geojson/',views.index_serialized,name='geojson_view'), 12 path('world/geojson/<int:id>/',views.return_facility_detail,name='aaa'), 13 url(r'^world/(?P<pk>\d+)$', views.return_facility_detail, name='detail_facility'), 14]
views
1def return_facility_detail(request,pk): 2 evacuation=Evacuation.objects.get(id=pk) 3 serialized=EvacuationSerializer(evacuation,many=True) 4 content=JSONRenderer().render(serialized.data) 5 return HttpResponse(content)
以上がコードです。
index.htmlのjavascriptの所の
<a href='javascript:show_facility_detail(" + feature.properties.pk + ")'>"
この部分でshow_facility_detail関数を呼び出して、それぞれのpkをshow_facility_detail(id)に入れて使いたいです。
そしてpkごとに詳細画面を返せるようになったらなと思っています。
今の状態で実行すると、リンクをクリックしたときに、GEThttp://127.0.0.1:8000/world/undefined 404 (Not Found)
とエラーが出てしまいます。
うまくpkが渡せていないような気がします。
どなたか分かる方教えていただきたいです。
あなたの回答
tips
プレビュー