在基于Archetypes的内容类型中,如果选择字段上使用的词汇表少于特定数量的项目(5,IIRC),则使用的窗口小部件是单选按钮输入而不是选择列表。
在基于敏捷的内容类型中,没有这样的行为,并且始终使用选择列表。
有没有办法强制单选按钮输入?
我测试了以下内容但无效,我找不到任何可用的文档:
from z3c.form.browser.radio import RadioWidget
class IMyType(form.Schema):
form.widget(my_field=RadioWidget)
my_field = schema.Choice(
title=_('My field'),
vocabulary=my_choices,
required=True,
)
我正在使用Plone 4.2和plone.autoform 1.3。
答案 0 :(得分:1)
您可以在plone.autoform 1.4及更高版本中指定这样的自定义小部件。
在plone.autoform的早期版本中,您需要指定“字段小部件”(在调用时生成小部件的可调用小部件)而不是小部件类。 (plone.autoform 1.4支持其中的一个,以及其文档中介绍的其他一些内容。)在这种情况下,您将使用z3c.form.browser.radio.RadioFieldWidget。