跳至内容
菜单
此问题已终结
3550 查看

I have two models:

class 1st_model(models.Model):  
 
scode = fields.Char('Code', size=3)

field_to_update = fields.Char('Updated')

and

class 2nd_model(models.Model):

_inherits = {'1st_model': 'id_1st_model'}
id_1st_model = fields.Many2one('1st_model', 'Code', widget="many2one_list")

name = fields.Char(string='Name', size=100, required=True)  
 
def update_field_to_update(self, cr, uid, ids, context=None):
context = context or {}
assignment_obj = self.pool.get('1st_model')
for record in self.browse(cr, uid, ids, context=context):
if record.id_1st_model:
assignment_ids = assignment_obj.search(cr, uid, [('id_1st_model', '=', record.id_1st_model)], context=context)
if assignment_ids:
assignment_obj.write(cr, uid, assignment_ids, {'field_to_update': 'ok'}, context=context)
return True

When I create a new entry in 2nd_model, I would like to wite 'ok' in 'field_to_update' of 1st_model. But this code doesn't work.

Any idea?

形象
丢弃

Who is calling update_field_to_update method?

编写者

Thank you for your reply. Where I Have to call this method? In the view? And how I can do?

in the write method. This will do your required update

编写者

Sorry, but I'm not good enough with Python. Could you make me an example, please?

相关帖文 回复 查看 活动
19
1月 18
12307
1
12月 16
4686
1
5月 16
6287
2
12月 22
14916
1
11月 21
5043