Я пытаюсь поместить OSM-карту, аналогичную той, что находится в geodjango-admin, в форму на моем основном сайте.Django floppyforms OSMPointWidget не отображает карту
Я решил использовать floppyforms, установить все, как в documentation, и, похоже, он распознается, но, как ни странно, карта не появляется. Firebug показывает, что вместо карты есть только пустой <div id="id_coord_map"></div>
, но он имеет все правильные размеры. Отладка-текстовое поле и «Удалить все функции» -link есть, как и должно быть. Но когда я открываю сайт, Firebug не показывает никаких javascript-запросов на вкладке «network», поэтому, возможно, это намек.
Наверное, я что-то пропустил или что-то не так правильно включил, но я пробовал часами и больше не знаю. Среди прочего я задал все пути для статических файлов и запустил manage.py collectstatic
, я также попытался не использовать общие представления вида, но он вышел так же.
Вот соответствующие части в коде:
#views.py
import floppyforms as forms
...
class OSMPointWidget(forms.gis.PointWidget, forms.gis.BaseOsmWidget):
pass
class LocationCreateView(CreateView):
model = Location
fields = ['name', 'zip', 'coord']
form_class = modelform_factory(Location,
widgets={"coord": forms.gis.PointWidget(attrs = {
'display_wkt': True,
'map_srid': 4326,
'map_width': 700,
'map_height': 500,})})
#models.py
class Location(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(max_length=255, blank=True, default='', unique=True)
coord = models.PointField()
zip = models.CharField(max_length=5, default='12345')
objects = models.GeoManager()
def __unicode__(self):
return self.name
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.name)
super(Location, self).save(*args, **kwargs)
#urls.py
urlpatterns = patterns('',
...
url(r"location/$", views.LocationCreateView.as_view(),
name = "locationcreate"),
...
)
#location_form.html
{% extends "_layouts/base.html" %}
{% block page_title %}Enter Location | {% endblock %}
{% block page_content %}
<form action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
{% endblock %}
#base.html
<!doctype html>
<html>
<head>
<title>{% block page_title %}{% endblock %}Calendar</title>
<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap-theme.css" >
</head>
<body>
<div class="container theme-showcase" role="main">
<div class="jumbotron">
<h1>EVENTCALENDAR</h1>
</div>
<div class="container">
{% block page_content %}{% endblock %}
</div>
</div>
</body>
</html>