2010-05-18 33 views
3

我得到了一个有2个字段的模型:经度和纬度。现在他们是2个CharFields,但我想制作一个自定义小部件,将其设置为admin - 正在考虑显示Google地图,然后获取标记的坐标。如何让一个小部件在Django中设置2个字段?

但我可以有1个小部件(一张地图)来设置2个不同的领域?

回答

1

定义窗体上的lat和long字段;将它们设置为使用HiddenInputWidget。

在表单初始化之后,添加另一个字段,其中包含您的自定义小部件,其中包含两个值。

在该领域新增的清洁方法,设置self.cleaned_data值[“纬度”]和self.cleaned_data [“LNG”]

可能有更简洁的方式,但它应该工作

1

我已经使用overriden full_clean方法进行数据分割。使用clean_FIELD方法为时已晚。

0

我最终在我的管理员中设置了一个额外的不需要的字段,其中有一个控件可以控制地图并设置像stevejalim那样的地图控件。但是我没有隐藏输入字段,因为他们仍然留在视图中,我不介意看到它们。重写用于编辑该模型的模板并放入地图可能会更清洁,但对于某些应该很简单的事情来说,这似乎很有用。

一个解决办法是,如果Django的允许复杂的模型领域的其中一个模式字段对应于多个数据库列但是这还不支持(见https://code.djangoproject.com/ticket/5929

另一个是,如果Django的将让我们使用表单域这对应于两个模型字段,但似乎没有办法达到这个目的,我也找不到票据。

相关问题