我有一个使用源和目标字段的模型,这些字段通常是从前端模板填充的。模板有两个表单字段,它们与谷歌地图自动完成API相关联。但是,如果我想通过管理面板创建新对象,如何将自动完成 API 与添加表单的源和目标字段集成?
你可以在 django admin 中轻松使用类似 https://github.com/ubilabs/geocomplete/的东西 —
覆盖更改表单模板以包含所需的 js:
{% load staticfiles %}
{% block extrahead %}{{ block.super }}
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/geocomplete/1.4/jquery.geocomplete.min.js"></script>
<script src="{% static 'path/to/your/js/geocomplete.js' %}"></script>
{% endblock %}
在您自己的 js 文件中:
$("#address_input").geocomplete();
此处提供了有关如何使用库填充表单的文档:
https://github.com/ubilabs/geocomplete/#populate-form-data
有一个名为django-location-field的Django管理小部件,它完全按照你的要求做。我在我的项目中使用它。
https://github.com/caioariede/django-location-field