我的odoo'我有一个One2many的关系。学生。学生'该模型
result_ids = fields.One2many("schoolresults.detail", "student_id", "SchoolResults")
" schoolresults.detail" model具有以下Many2One关系字段
student_id = fields.Many2one("student.student", "Student", ondelete="cascade")
subject_id = fields.Many2one("schoolresults.subject", "Subject")
问题是,在添加结果ids字段时,可以将某个主题两次添加到同一个学生并使用不同的分数。 我试着让sql_constrait' UNIQUE(student_id,subject_id)'在schoolresults.detail 模型但它会引发错误。 如果已经选择了主题,我不希望主题出现在选择字段上。 我认为答案是arround域属性, 这张图片可能包含我的语言错误。 enter image description here
答案 0 :(得分:0)
您应该在one2many字段 result_ids 的onchange上返回一个域名。 例如:
ids_list = []
@api.onchnage('result_ids')
def onchange_result_ids(self):
for record in self.result_ids:
if record.subject_id:
ids_list.append(record.subject_id.id)
return {'domain': {'subject_id': [('id', 'not in', ids_list)]}}