首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >django floppyforms -默认-缩放和lat/long

django floppyforms -默认-缩放和lat/long
EN

Stack Overflow用户
提问于 2012-06-12 13:01:32
回答 1查看 497关注 0票数 0

有人知道用floppyforms.gis.BaseGMapWidget设置默认缩放和纬度/经度的简单方法吗?此外,在创建条目集时,可以将摇摄作为默认工具。

在我定义的表格中:

代码语言:javascript
运行
复制
class PointWidget(floppyforms.gis.PointWidget, floppyforms.gis.BaseGMapWidget):
    map_width = 690
    map_height = 300

class EventForm(ModelForm):
    class Meta:
        model = Event
        widgets = {
            'coordinates': PointWidget(),
        }

这完美地显示了map小部件,我可以设置一个点。它还很好地居中&在为现有条目加载表单时放大了点。但是当显示表单以创建一个新条目时,它的中心是非洲的西部成本。

是否有实现这一目标的方法(最好是在表单/小部件类中定义,而不使用额外的javascript)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-12 13:37:51

首先,重写小部件类上的get_context_data()并将其指向自定义模板:

代码语言:javascript
运行
复制
class PointWidget(floppyforms.gis.BaseGMapWidget, floppyforms.gis.PointWidget):
   template_name = 'custom_lonlat.html'
   default_lon = 'something'
   default_lat = 'something'

   def get_context_data(self):
       ctx = super(PointWidget, self).get_context_data()
       ctx.update({
           'lon': self.default_lon,
           'lat': self.default_lat,
       })
       return ctx

然后创建custom_lonlat.html模板:

代码语言:javascript
运行
复制
{% extends "floppyforms/gis/google.html" %}

{% block options %}{{ block.super }}
options['default_lon'] = {{ lon }};
options['default_lat'] = {{ lat }};
{% endblock %}

如果您想要使默认的lon/lat动态,您可以通过视图代码直接在表单实例上设置它们:

代码语言:javascript
运行
复制
form = EventForm()
form.fields['coordinates'].widget.default_lon = 'something'
form.fields['coordinates'].widget.default_lat = 'something else'

我是floppyforms的作者,我见过几次…的这个问题我很快就会把这个答案加到公文上。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10997235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档