1

私は次のような単純なモデルを持っています:

games = ['soccer', 'hockey', 'baseball', 'cricket', 'basketball']
db.define_table('Sportsmen',
                Field('gamer', db.auth_user),
                Field('games', length=20),
                Field('experience', 'integer', default=0))

私がやりたいのは、SQLフォームを介してドロップダウンメニューにゲームのリストを入力することです。selectwidgetを見ましたが、この小さな目的のために、例は少し複雑でした(データベースにすべてのオプションを配置し、そのdbをドロップダウンにレンダリングしました。私の場合は小さなリストだけで十分です)。類似のdjango機能はここにあります

4

2 に答える 2

2

各ゲーマーが複数のゲームを持つことができ、それらを 1 つのフィールドにリストとして格納する場合は、list:stringフィールド タイプを使用multiple=TrueしてIS_IN_SET()バリデーターに追加できます。

Field('games', 'list:string', requires=IS_IN_SET(games_set, multiple=True))
于 2012-05-06T17:41:26.867 に答える
2

requires 引数を使用して、そのドロップダウンを作成できます。

games_set = set('soccer', 'hockey', 'baseball', 'cricket', 'basketball')
db.define_table('Sportsmen',
            Field('gamer', db.auth_user),
            Field('games', length=20, 
                requires=IS_IN_SET(games_set))),
            Field('experience', 'integer', default=0))

これにより、セットのアイテムのみを含むドロップダウンがフォームに表示されます。

于 2012-05-05T19:19:46.200 に答える