【发布时间】:2020-12-02 11:43:40
【问题描述】:
我正在开发一个 django 应用程序,该应用程序允许用户在地图上创建一个点。为了方便使用,这张地图需要以某个位置为中心,而这个位置是可变的。我正在使用LeafletWidget 让用户创建这个点。
可以通过更改LeafletWidget 的属性来使地图居中。不幸的是,这个小部件是在 Meta 类中定义的,据我所知,您不能将变量传递给它。这是我想做的一个例子,以某种方式将变量center 传递给Meta 类。 center 是具有纬度和经度值的元组。这个示例代码当然不起作用。我不知道您是否可以以某种方式将变量传递给 Meta 类。
class PointModelForm(ModelForm):
class Meta(center):
model = PointModel
fields = ['name', 'point']
widgets = {'point': LeafletWidget(attrs={'settings_overrides': {'DEFAULT_CENTER': center} })}
我最好的选择是在__init__ 函数中定义widgets 属性,但是如果我是正确的,Meta 类无法访问这些属性。当我运行它时,没有使用任何小部件。
class PointModelForm(ModelForm):
class Meta:
model = PointModel
fields = ['name', 'point']
def __init__(self, center):
super(PointModelForm, self).__init__()
self.widgets = {'point': LeafletWidget(attrs={'settings_overrides': {'DEFAULT_CENTER': center} })}
你知道怎么做吗?提前致谢!
【问题讨论】:
标签: python django attributes leaflet metaclass