我做了什么:
我有一个带
的模块myfield = fields.Many2one('res.partner', string="Graduate", domain=[('is_graduated', '=', True)])
然后我又有了一个
的课程_inherit = 'res.partner'
is_graduated = fields.Boolean("Graduated before?", default=False)
graduations = fields.Many2many('my_module.courses', string="Graduation courses")
我得到了什么:
myfield
效果很好,但graduations
字段为空。如果您修改user 1
个人资料,则可以使用graduation
向Add item
字段添加条目,但我需要自动填写。
我的期望:
我希望当您打开myfield
个人资料时,user 1
设置为graduations
的所有记录都会显示在字段user 1
中。当我创建记录并将myfield
值设置为user 1
时,该记录必须显示在字段user 1
中的graduations
个人资料中。如何实现?
答案 0 :(得分:1)
您需要onchange method
使用myfield
,然后在其中需要填写graduations
字段,如下所示:
@api.onchange('myfield'):
def _onchange_myfield(self):
#fill graduations field here...
...
答案 1 :(得分:1)
_inherit = 'crm.phonecall'
alarm_ids = fields.Many2many('calendar.alarm',string="Reminders")
set the alarm_ids of calendar.event model in create method of crm phonecall...
alarm_ids = [(6,0,self.alarm_ids.ids)]
_inherit = 'calendar.event'
alarm_ids = fields.Many2many('calendar.alarm',string="Reminders")
答案 2 :(得分:0)
你可以达到这样的目标。
例如:
@api.one
@api.depends(
#here you may define your depend field name
)
def _set_graduations(self):
#here comes your logic which will collect ids
#and than return it with self.field_name like
self.graduations = [list_of_ids]
graduations = fields.Many2many('my_module.courses', string='Payments',
compute='_set_graduations')
如果您不想使用 @ api.depends ,则可以使用 @ api.multi 。作为参考,您可以使用 account_invoice.py 文件查看帐户模块。