私は、次のように定義されたone2manyフィールドresult_ids
を持つクラスstudent_student
あります設定のデフォルト値
result_ids = fields.One2many("schoolresults.detail", "student_id", "School Results", default="_get_subjects")
と
def _get_subjects(self):
cr = self.pool.cursor()
self.env
return self.pool.get('schoolresults.subject').search(cr, self.env.uid, [])
を私はクラス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)
私がやってみたいのは、result_i one2manyフィールドのdefault
パラメータを使用して、ユーザーが新しい学生プロフィールを作成しようとするたびに、最後のクラスの科目リストを使用してdsを追加します。 しかし、学生のプロフィールを作成しようとすると、私はこのエラーが発生しますWrong values for student.student.result_ids
。 これを達成するにはどうしてですか?
PS。
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
しかし、エラーメッセージの説明:私は、私はここに完全にあなたの要件を得るが、以下のような何かをしようとしていないOdoo 9
生徒のプロフィールが作成されるたびにデフォルトの値(科目)を設定しようとしています。既存のデータをフィルタリングしようとしていません – pourjour