Python Pylons WebHelper optionタグを生成する その2(h.options_for_select_from_objects) |
webhelpers.rails.form_options
オブジェクトの入ったリストからoptionタグを
生成する方法です。
<%
class Clazz:
def __init__(self,name,attr):
self.name = name
self.attr = attr
l = [Clazz('test1', 'attr1'), Clazz('test2', 'attr2'), Clazz('test3', 'attr3')]
%>
<select>
${h.options_for_select_from_objects(l, 'name', value_attr='attr', selected='attr3')}
</select>
第一引数にリスト、第二引数にプロパティ名を渡します。
その他に
・valueに指定するプロパティ
value_attr='attr'
・初期表示する項目
selected='attr3'
これは便利。
もう一つ、辞書を引数に指定する方法です。
<% l = [{'title':'title1','attr':'attr1'},{'title':'title2','attr':'attr2'}] %>
${h.options_for_select_from_dicts(l, "title", value_key='attr', selected='attr2')}
第一引数にリスト、第二引数に表示する文字列のキーを指定します。
また
・valueに指定するプロパティ
value_key='attr'
・初期表示する項目
selected='attr2'
の指定が行えます。