跳至內容
選單
此問題已被標幟
1 回覆
4550 瀏覽次數

Hi there i'm tring to override create fucntion to add records in two table same time but i'm getting errorr


when i try to choose standerd for student the student should be added to many2many field in standerd model but i get an errpr when i try to do so .

here is my fields in student model :


'standard_id': fields.many2one('fci.standard', string='Standard', required=True), 

and here is my fields in standrard table model:


'code': fields.char(size=8, string='Code', required=True),
'name': fields.char(size=32, string='Name', required=True),
'sequence': fields.integer('Sequence'),
'student_ids': fields.many2many('fci.student', 'student_standard_rel', 'fci_student_standard_id', 'standard_id',
string='Student(s)'),


and here is my create function

def create(self, cr, uid, vals, context=None):
context = context or {}
created_id = super(NAME_OF_YOUR_CLASS, self).create(cr, uid, vals, context=context)
if vals.get('standard_id'):
self.pool.get('fci.standard').write(cr, uid, vals['standard_id'],
{'student_ids': [(4, created_id)]}, context=context)
return created_id



i hope i can find help

頭像
捨棄
最佳答案

Hi,

I updated your code in your post, just replace NAME_OF_YOUR_CLASS with good value (you do not give the class name of student, please always give at least in your code class name to be more clear for reader)

bye

頭像
捨棄
作者

i tried to override write function too but gives me error i don't know why here is my code def write(self, cr, uid, ids, values, context = None): res = super(fci_student, self).write(cr, uid, ids, values, context = context) if values.get('standard_id'): self.pool.get('fci.standard').write(cr, uid, values['standard_id'], {'student_ids': (0, 0, {values})}, context=context) return res and error says :TypeError: unhashable type: 'dict'

相關帖文 回覆 瀏覽次數 活動
0
4月 15
186
1
3月 15
5857
2
7月 22
5395
1
7月 22
5285
5
6月 20
31582