pou*_*our 0 python-2.7 odoo odoo-9
我有一个类student_student
,它的 one2many 字段result_ids
定义如下:
result_ids = fields.One2many("schoolresults.detail", "student_id", "School Results", default="_get_subjects")
Run Code Online (Sandbox Code Playgroud)
和
def _get_subjects(self):
cr = self.pool.cursor()
self.env
return self.pool.get('schoolresults.subject').search(cr, self.env.uid, [])
Run Code Online (Sandbox Code Playgroud)
在另一边我有一堂课schoolresults_subject
:
class schoolresults_subject(models.Model):
_name = "schoolresults.subject"
_description = "Student's subjects."
name = fields.Char("Subject")
class schoolresults_detail(models.Model):
_name = "schoolresults.detail"
_description = "Student's results."
student_id = fields.Many2one("student.student", "Student", ondelete="cascade")
subject_id = fields.Many2one("schoolresults.subject", "Subject")
result = fields.Float("Result", compute='_compute_value', store=True)
Run Code Online (Sandbox Code Playgroud)
我想做的是,每当用户尝试使用 one2many 字段中的参数创建新的学生个人资料时,用上一堂课的科目列表填充 result_ids default
。但每当我尝试创建学生档案时,我都会收到此错误Wrong values for student.student.result_ids
。请问有什么办法可以实现这一点吗?
附言。我正在使用 Odoo 9
我没有完全理解您的要求,但请尝试以下操作:
def _get_subjects(self):
subjects = self.env['schoolresults.subject'].search([])
details = self.env['schoolresults.detail']
for subject in subjects:
details |= details.new({'subject_id': subject.id})
return details
Run Code Online (Sandbox Code Playgroud)
但解释一下错误消息:您返回的是 RecordSetschoolresults.subject
但您的字段result_ids
具有 comodel schoolresults.detail
。那是错误的;-)
归档时间: |
|
查看次数: |
7139 次 |
最近记录: |