3

我有一个表单,其中某个字段是具有 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 来实现它们?如果没有,我怎样才能做到这一点?

提前致谢。

4

1 回答 1

6

我是脆皮形状的主要开发者。您可以使用Field布局对象和自定义模板来做到这一点。

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

您拥有的其他选择是创建自己的布局对象子类化InlineRadio。这样你只需要这样做:

CustomInlineRadio('field_name')

实际上,您尝试做的基本上是覆盖 Django 中默认小部件的输出,如果您在 Django 表单中使用自定义小部件,这可能更有意义,crispy-forms 会很好地配合它。我写了一篇您可能感兴趣的关于小部件和 Django 表单的文章。

于 2013-01-03T16:55:25.987 回答