2013-07-11 25 views
1

如果在选择字段上使用的词汇少于特定数量的项目(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和1.3 plone.autoform。

+1

您使用的是什么版本的plone.autoform?这应该工作,如果你有plone.autoform 1.4和autoform启用表单。使用较早的版本,您需要指定RadioFieldWidget。 SteveM已经实现了一个改进的小部件,像Archetypes一样自动选择其格式,但尚未合并。 –

+0

它的工作,谢谢!请将您的评论转换为答案,以便我可以接受:-) – hvelarde

回答

1

您可以在plone.autoform 1.4及更高版本中指定一个像这样的自定义小部件。

在早期版本的plone.autoform中,您需要指定一个“字段控件”(调用时会生成一个控件的可调用对象)而不是控件类。 (plone.autoform 1.4支持其中的一个,以及其他文档中介绍的其他内容)。在这种情况下,您可以使用z3c.form.browser.radio.RadioFieldWidget。

+1

谢谢,我认为问题在于我正在导入RadioWidget而不是RadioFieldWidget。 – hvelarde

相关问题