3

geodjango-admin にあるものと同様の OSM マップをメイン サイトのフォームに入れようとしています。

フロッピーフォームを使用することにし、ドキュメントのようにすべてを設定すると、認識されるように見えますが、奇妙なことにマップが表示されません。Firebug は<div id="id_coord_map"></div>、マップの代わりに空しかないことを示していますが、すべて正しい次元を持っています。デバッグテキストボックスと「すべての機能を削除」リンクは、本来あるべき姿です。しかし、サイトを開くと、Firebug は「ネットワーク」タブに JavaScript リクエストを表示しないので、それがヒントかもしれません。

何かを見逃したか、何かが正しく含まれていないと思いますが、何時間も試してみましたが、もうわかりません。とりわけ、静的ファイルと run のすべてのパスを設定し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>
4

1 に答える 1