2012-12-27 55 views
2

我有一個表單,其中某個字段是帶有3個選項的無線電選擇器。比方說,這代表着好,差不多,差。Django脆皮形式:用圖像替換標籤和單選按鈕

我設法把它們與InlineRadio同一行,像這樣:

self.helper.layout = Layout(InlineRadio(field_name)) 

現在,我需要兩兩件事:

1)替換每個選項,呈現爲無線電按鈕及其帶有預定義圖像的標籤。

2)添加2個圖像,其中一個位於單選按鈕的左側和右側。所以,最後,我會連續拍攝5張照片。從左至右依次爲:Image of Smile (just the image) - Image of selector (Good) - Image of selector (More-or-Less) - Image of selector (Bad) - Image of Sad face (just the image

是否有可能與Django的香脆來實現這些目標?如果不是,我該如何做到這一點?

在此先感謝。

回答

5

我是脆皮形式的主要開發者。您可以使用Field佈局對象並使用自定義模板來執行此操作。

Field('field_name', template="custom_inline_radio.html") 

其他選項是創建自己的佈局對象子類InlineRadio。這樣,你就只需要做:

CustomInlineRadio('field_name') 

其實,你試着做什麼,基本上覆蓋在Django默認的窗口小部件的輸出,並且可能更有意義,如果你在你的Django形式使用自定義窗口小部件,脆皮形式將會發揮出色。我寫了一篇關於widgets and Django forms的文章可能會讓你感興趣。

+0

我已經通過子類化InlineRadio解決了這個問題。這使我不僅可以自定義模板,還可以傳遞其他上下文變量。我打算把它張貼在這裏,但你在我面前。感謝真棒包! – duduklein

+0

幹得好:)謝謝 – maraujop