Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3481 Lượt xem

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?

Ảnh đại diện
Huỷ bỏ

Who is calling update_field_to_update method?

Tác giả

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

Tác giả

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

Bài viết liên quan Trả lời Lượt xem Hoạt động
19
thg 1 18
12213
1
thg 12 16
4605
1
thg 5 16
6212
2
thg 12 22
14786
1
thg 11 21
4906