rebecca.views.ListView は汎用的なリストビューです。 モデルクラス、セッション、グリッド定義とともに利用します。
class UserListView(ListView):
model = User
session = DBSession
grid = Grid([
(u'', helpers.checkboxmaker('user_name')),
(u'#', 'id'),
(u'Name', helpers.linkmaker('user_name',
helpers.urlmaker('user', [('user_name', 'user_name')]))),
],
table_attrs={'class': 'table table-striped'})
この例では、 User がモデルクラス、 DBSession がセッションオブジェクトです。 rebecca.helpers.Grid で、リスト表示する項目を指定します。 項目の指定は2要素タプルのリストです。
第一要素が項目名で、第二要素が項目の内容です。
第二要素は通常、モデルデータを受け取る呼び出し可能なオブジェクトです。 ただし、項目の内容が文字列で指定された場合は、 モデルデータの属性が指定されたものとして扱われます。
(u'#', 'id') という項目定義は、 (u'#', operator.attrgetter('id')) と定義したのと同じことになります。
Note
セッションオブジェクトは、scoped_session を前提としています。
グリッドの表示内容は grid という変数名でテンプレートに渡されます。 markupsafeとしているため、表示する際にHTMLエスケープをバイパスする必要はありません。
<html>
<body>
${grid}
</body>
</html>