web2py と SQLFORM.grid に苦労しています。
私がやりたいことは次のとおりです。
3 つのデータベース テーブルがあります: items、tag、およびクロス テーブルの itemtag です。
1 つのアイテムに複数のタグを付けることができ、1 つのタグが複数のアイテムに属することができます。
私がこれまでに持っているもの:
fields = [db.items.id, db.items.title, db.items.rating, db.tag.title]
left = [db.itemtag.on(db.items.id==db.itemtag.item_id), db.tag.on(db.itemtag.tag_id==db.tag.id)]
items = SQLFORM.grid(db.items, left=left, orderby=[db.items.title], fields=fields, create=False, editable=False, details=False, showbuttontext=False, paginate=50, links = [lambda row: A(I(_class="icon-edit"),_href=URL("default","item_edit",args=[row.items.id]))])
これで、SQLFORM.grid はすべてのアイテムを含むグリッドを生成します。しかし残念なことに、項目に複数のタグがある場合、グリッドに複数の行が表示されます。このような:
ID | item | tag
1 | item1 | tag 1
1 | item1 | tag 2
1 | item1 | tag 3
2 | item2 | tag 2
....
今、SQLFORM.grid の groupby 関数を探しています。私が欲しいのは次のとおりです。
ID | item | tag
1 | item1 | tag1, tag2, tag3
2 | item2 | tag
アドバイスをお待ちしております。