1

私は tryton に 2 つのモジュールを持っています。最初はemployeeで、2 番目はpointageです。を選択できる選択フィールドを追加しようとしていますpointage

そのためには、タプルのリストを作成する必要がありますpointagedef = [('', '')] が、それを行う方法を理解するためのドキュメントが見つからないという問題があります

pointage= fields.Selection(pointagedef, 'grh.pointage')   

私は次のようなことをしようとしています:

for pointage in pointages:
    pointagedef.append((pointage, pointage))
4

1 に答える 1

4

値を持つ 2 つの値のタプルのリストを宣言するだけです。何かのようなもの:

colors = fields.Selection([
   ('red', 'Red'),
   ('green', 'Green'),
   ('blue', 'Blue'),
], 'Colors')

最初の値は内部値で、データベースに保存されます。2 番目の値はクライアントに表示される値で、デフォルトでは翻訳可能です。

2 つの値のタプルのリストを返す関数名を渡すこともできます。例えば:

colors = fields.Selection('get_colors', 'Colors')

@classmethod
def get_colors(cls):
   #You can access the pool here. 
   User = Pool.get('res.user')
   users = User.search([])
   ret = []
   for user in users:
      if user.email:
         ret.append(user.email, user.name)
   return ret

また、単一のテーブルにアクセスする場合は、ビュー定義に widget="selection" を追加して Many2One フィールドを使用できます。これにより、クライアントはデフォルトのウィジェットではなく選択ウィジェットをレンダリングし、テーブルのすべてのレコードをプリロードして選択。

于 2014-08-01T13:28:42.257 に答える