在django模板

时间:2016-11-13 19:46:44

标签: django google-maps

我有一个查询返回城市的长/纬度参数,并希望在模板中显示地图。 从Google的说明中,我无法理解在哪里粘贴javascript代码。

我继续执行以下操作:

  1. 在html模板中创建了map div(从base.html扩展而来)
  2. 使用javascript.html模板中的API密钥粘贴脚本
  3. 在静态文件夹
  4. 中的map.js文件中添加了javascript脚本

    控制台显示:“initMap不是函数” 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

一个好的做法是在关闭body元素之前在base.html中定义一个名为 footer 的块,并在此内容中加载所有js文件/代码。

<强> base.html文件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head> </head>
    <body>
    {% block footercontent %}
    {% endblock %}
    </body>
</html>

<强> yourtemplate.html

{% extends "base.html" %}
{% block footercontent %}
       <script src="myscripts.js"></script>
{% endblock %} 

答案 1 :(得分:0)

所以我看起来你可能会复制文档中的示例脚本标记,控制台上显示的错误意味着没有名为initMap的函数。你看到脚本标签src的末尾有&callback=initMap,其中initMap是当google maps js文件准备好使用时要调用的函数的名称。

也许您在javascript.html模板中导入静态文件夹的map.js。

专业提示:使用v=3参数获得google maps api的稳定版本,如此(more info):

<script async defer
src="https://maps.googleapis.com/maps/api/js?v=3
    &key=YOUR_API_KEY&callback=initMap">