在 odoo 10.0 中创建图表

Create chart in odoo 10.0

我想在 odoo 10 中创建一个条形图(图形视图),可以显示每门课程的学生人数。有了这个 python 数据库,我该如何实现它?网上没有此类视图的示例代码

class Student(models.Model):
   _name = "studentmanagement.student"

   id= fields.Char(required=True, index=True)
   full_name= fields.Char(required=True, index=True)
   gender = fields.Char()
   birthday = fields.Char(required=True)
   address = fields.Char(required=True)
   course_inscription = fields.Many2many('studentmanagement.course',string = 'inscription')
   _sql_constraints = [('id_unique', 'UNIQUE(id)', 'Two students can not have the same ID!')]


class course(models.Model):
     _name = "studentmanagement.course"

     code = fields.Char(required=True, index=True)
     course_name = fields.Char(required=True, index=True)
     credits = fields.Integer(required=True)
     nstudent= fields.Integer(compute='_compute_percentage_students_course', store=True)
     _sql_constraints = [('code_unique', 'UNIQUE(code)', 'Two courses can not have the same ID!')]

     @api.depends('percentage','course_inscription')
     def _compute_percentage_students_course(self):
        for record in self:
            record.nstudent = len(record.course_inscription)

非常感谢您的帮助!

这是图表视图:

<graph string="Sales Orders">
                    <field name="partner_id"/>
                    <field name="amount_total" type="measure"/>
</graph>

该图表视图有两个字段。根据图表的类型,它们将被相应地呈现。

您必须创建一个字段来保存计算出的百分比,例如:

percentage = fields.Float(compute='_compute_percentage_students_course' store=True)

在那个 _compute_percentage_students_course 中,您将计算并将计算设置为 percentage 字段的值(查看官方 documentation 上的计算字段部分,了解如何正确创建一个计算域)

此外,检查图表视图上的 documentation,它会告诉您图表的创建方式、您可以拥有的图表类型等。以下内容应该适合您:

<graph string="Sales Orders">
                        <field name="full_name"/>
                        <field name="percentage" type="measure"/>
    </graph>