2010-05-18 58 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的將讓我們使用表單域這對應於兩個模型字段,但似乎沒有辦法達到這個目的,我也找不到票據。

相關問題