我有一个表单,其中某个字段是具有3个选项的无线电选择器。让我们说这代表好,多或少,坏。
我设法将它们与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-crispy实现它们?如果没有,我怎么能实现这个目标?
提前致谢。
答案 0 :(得分:5)
我是脆皮形式的主要开发者。您可以使用Field
布局对象并使用自定义模板执行此操作。
Field('field_name', template="custom_inline_radio.html")
您拥有的其他选项是创建自己的布局对象子类InlineRadio
。那样你只需要这样做:
CustomInlineRadio('field_name')
实际上,你尝试做的事情基本上是覆盖Django中默认小部件的输出,如果你在Django表单中使用自定义小部件可能更有意义,crispy-forms将会很好用。我在widgets and Django forms上写了一篇你可能感兴趣的文章。