2011/02/02

Archetypes SelectionWidget

建立 Archetypes 表單時,可用的 widget 很多種,這裡特別整理跟選項有關的設定方式。對於「單選」的欄位,使用 SelectionWidget 就行,頂多只需要指定 format 設定值。下列範例提示了值得留意之處:
from Products.Archetypes.Field import StringField
from Products.Archetypes.Widget import SelectionWidget
...
StringField(
name='myfield',
vocabulary='_get_selection_vocab',
widget=SelectionWidget(
label_msgid='label_myfield',
format='select',
),
),
...
def _get_selection_vocab(self):
"""sample selection voc
"""
return DisplayList((('item01','Item One'),('item02','Item Two'),))

對於「複選」的欄位,使用 MultiSelectionWidget 就可搞定,如果選項過多,就要考慮是否改用 InAndOutWidget。
更多細節,從 Archetypes Developer Manual 找得到說明。