2

次の敏捷性スキーマがあります。

from plone.app.form.widgets import MultiCheckBoxWidget

visibilityVocabulary = SimpleVocabulary(
[
    SimpleTerm(u'OSP', title=u'OSP'),
    SimpleTerm(u'BIZ', title=u'BIZ'),
]

class ISomeSchema(Interface):
     # ...
     form.widget(visibility=MultiCheckBoxWidget)
     visibility = schema.Set(title=Visibility',
                             value_type=schema.Choice(vocabulary=visibilityVocabulary)
                             )

フィールドは、スキーマ内で指定されているチェックボックスを使用する代わりに、In-And-Outウィジェットを使用してレンダリングされます。

なんで?

4

1 に答える 1

4

のウィジェットはplone.app.formフォーム用zope.formlibです。器用さは、z3c.formフォーム ライブラリを使用します。

z3c.form.browser.checkbox.CheckBoxFieldWidget代わりに試してください。このような:

from zope import schema
from zope.schema.vocabulary import SimpleVocabulary
from zope.schema.vocabulary import SimpleTerm

from plone.directives import form

from z3c.form.browser.checkbox import CheckBoxFieldWidget

visibilityVocabulary = SimpleVocabulary(
[
    SimpleTerm(u'OSP', title=u'OSP'),
    SimpleTerm(u'BIZ', title=u'BIZ'),
])

class ISomeSchema(form.Schema):

     form.widget(visibility=CheckBoxFieldWidget)
     visibility = schema.Set(
             title=u'Visibility',
             value_type=schema.Choice(vocabulary=visibilityVocabulary)
         )
于 2012-11-08T09:56:50.517 に答える