首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算字段Odoo9

计算字段Odoo9
EN

Stack Overflow用户
提问于 2016-08-10 17:28:39
回答 2查看 292关注 0票数 0

我在"Odoo9“中创建了一个学生管理模块,在该模块的一部分中,我想计算一个学生在像”数学“这样的科目中获得的平均分数。我正在尝试使用这段代码来实现这个目标,但是在填写”数学-1“和”数学-2“之后,我在计算”Avg-数学“时遇到了问题,只有在拯救了学生profile.Can之后,才能计算出它--有人能在这里认识到这个问题吗?我怎么才能解决这个问题?

代码语言:javascript
复制
#student class
class student_student(models.Model):
    '
    '
    '
    result_ids = fields.One2many("schoolresults.detail", "student_id", "School Results")
    '
    '
    '


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_manual = fields.Float("Result")
    result = fields.Float(compute='_compute_value',store=True)
    manual = fields.Boolean(compute='_is_manual', default=False)

    @api.one
    @api.depends('manual')
    def _is_manual(self):
        self.manual = self.subject_id.my_id
    @api.one
    @api.depends('result_manual','subject_id','subject_id.my_id')
    def _compute_value(self):
        self.ensure_one()
        results = self.env['schoolresults.detail'].search([])
        total = 0
        for data in results:
            total += data.result_manual
        for data in results:
            #if the subject is the average of others 
            if data.subject_id.my_id:
                data.result = total


class schoolresults_subject(models.Model):
    _name = "schoolresults.subject"
    _description = "Student's subjects."
    my_id = fields.Integer(default=0)
    name = fields.Char("Subject")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-11 07:42:21

student_id.result_ids.result_manual添加到_compute_value上的依赖列表中。这应该会触发一次重新计算。

票数 1
EN

Stack Overflow用户

发布于 2016-08-11 18:02:23

我认为,在计算了值之后,应该将其分配给结果字段。

代码语言:javascript
复制
@api.one
def _compute_method(self):
# compute average for this record 
self.result = calclated_value

但是我没有看到您将值赋值到结果字段?!!试着分配它应该做的事情

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38879919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档