2012-12-27 33 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