콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
1 회신
4657 화면

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
5973
2
7월 22
5598
1
7월 22
5449
5
6월 20
31797