以下は私のビューxmlとモデルクラスです。レコードを追加するフォームがあり、適切に機能します。しかし、その sub childs onchange イベントの値を設定する必要があります。ドキュメントからもこのリンクを参照します。
そして、モジュールGIT HUB REPOのコード全体を次に示します。
<field name='selected_tea_workers_line_ids' nolabel='1'>
<tree string='List' readonly='1'>
<field name='tea_line_worker_id' invisible="0" />
<field name='worker_id' />
<field name='is_selected' />
</tree>
</field>
def on_change_division(self, cr, uid, ids, bpl_division_id):
v = {}
if bpl_division_id:
work_offer = self.pool.get('bpl.work.offer').browse(cr, uid, 2)
v['selected_tea_workers_line_ids'] = work_offer.selected_tea_workers_line_ids
if work_offer.selected_tea_workers_line_ids:
for record_item in work_offer.selected_tea_workers_line_ids:
v['tea_line_worker_id'] = record_item.selected_tea_workers_line_ids.tea_line_worker_id
v['worker_id'] = record_item.selected_tea_workers_line_ids.worker_id
v['is_selected'] = record_item.selected_tea_workers_line_ids.is_selected
return {'value':v}
ここにアイデアがあります: 会社 -> 部門 -> を選択した場合、その部門に関連するすべての労働者 (リストとして名前と作品を持っています) をロードする必要があります。
以下に、サンプル写真を追加しました
答えを得ました
def on_change_division(self, cr, uid, ids, division_id):
v = {}
list_data = []
if division_id:
worker_ids = self.pool.get('bpl.worker').search(cr, uid, [('bpl_division_id', '=', division_id)])
for record in self.pool.get('bpl.worker').browse(cr, uid, worker_ids):
list_data.append({'worker_id': record.id})
v['selected_tea_workers_line_ids'] = list_data
return {'value':v}
クレジットはuser1576199に行く必要があります