我正在尝试实现django地图小部件 https://github.com/erdem/django-map-widgets
但是没有地图出现,我在浏览器控制台中有这个
Uncaught ReferenceError: DjangoGooglePointFieldWidget is not defined
在settings.py中,我有
INSTALLED_APPS = [
...
'mapwidgets',
]
MAP_WIDGETS = {
"GoogleStaticMapWidget": (
("zoom", 15),
("size", "320x320"),
),
"GoogleStaticMapMarkerSettings": (
("color", "green"),
),
"GOOGLE_MAP_API_KEY": "AIzaSyA1fXsJSKqZH_Bl9d9wueJMlpXd-6tEJy0"
}
在我的model.py
中class CompanySettingEdit(forms.ModelForm):
display_companyname = forms.CharField(label='Display Company Name', max_length=50, required=True)
class Meta:
model = Company
fields = ("display_companyname","location_point")
widgets = {
'location_point': GooglePointFieldWidget,
}
更新: 我在settings.py中的静态文件配置
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "../projectapp/static"),
)
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, '../../../static_root')
运行python manage.py collectstatic后,静态文件被复制到另一个目录static_root - https://imgur.com/a/TmhYr。请注意,mapwidgets目录不在原始项目静态目录中。即时运行开发,我注意到bootstrap静态文件正在使用静态目录中的文件,而不是static_root
我错过了什么吗?我需要在模板中加载任何内容吗?
答案 0 :(得分:4)
这was encountered before。可能的解决方案:
python manage.py collectstatic
,以便将第三方静态文件复制到STATIC_ROOT
(their readme中的更多内容)urls
提供视图的静态文件(帮助程序链接#1和#2){{form.media}}
中的某个位置或基础HTML中<head>
标记的末尾有<body>
。 (example)答案 1 :(得分:1)
实际上没有人要求提供模板。 基于此https://docs.djangoproject.com/en/2.0/topics/forms/media/ 这是形式。媒体做了伎俩。我没有使用自己的表单名称进行.media调用。
这是我的html模板文件,其中包含显示地图的字段。
{% extends 'employee/base.html' %}
{% load bootstrap3 %}
{% block page %}
<div class="col-lg-12">
<div class="panel">
<div class="panel-heading bg-blue">
<h4 class="panel-title text-center text-white">
Company Settings
</h4>
</div>
<div class="panel-body">
{{ companysetting_form.media }} <--- this did the trick
<h4>Company Login Name: <a href="{% url 'employee-companychangename' %}">{{ request.user.employee.company.companyname }}</a></h4>
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{% bootstrap_form companysetting_form %}
<button type="submit" class="btn btn-pink">Update</button>
</form>
</div>
</div>
</div>
{% endblock %}