我是Python的新开发人员,刚开始使用python / xml中的Odoo开发应用程序,我在显示特定视图中的信息时遇到问题。
我解释我的问题:在一边,有学生;另一方面,还有会议。所有学生都可以注册所有课程,他们必须为此注册排名。 问题是,我无法显示注册的排名。
这是我的代码,
学生班:
class Student(models.Model):
_name = 'agsm.student'
session_ids = fields.Many2many('agsm.session',
relation="agsm_student_session",
column1='student_id',
column2='session_id')
会话类:
class Session(models.Model):
_name='agsm.session'
student_ids = fields.Many2many('agsm.student',
relation='agsm_student_session',
column1='session_id',
column2='student_id')
和做关系的班级
class Rank(models.Model):
_name = 'agsm.student.session'
session_id = fields.Many2one('agsm.session', string='Session')
student_id = fields.Many2one('agsm.student', string='Student')
rank = fields.Integer(default=5)
我想做的是在学生的表单视图中显示排名。目前我有这段代码,但我怎样才能添加等级的显示
<label for="session_ids"/>
<field name="session_ids">
<tree string="Registered sessions">
<field name="name"/>
</tree>
</field>
感谢答案
编辑新代码是: 学生
class Student(models.Model):
_name = 'agsm.student'
session_ids = fields.Many2many('agsm.session',
relation="agsm_student_session",
column1='student_id',
column2='session_id')
session_ranks = fields.One2Many('agsm.student.session', 'student_id')
等级
class Rank(models.Model):
_name = 'agsm.student.session'
session_id = fields.Many2one('agsm.session', string='Session')
student_id = fields.Many2one('agsm.student', string='Student')
rank = fields.Integer(default=5)
会话
class Session(models.Model):
_name='agsm.session'
student_ids = fields.Many2many('agsm.student',
relation='agsm_student_session',
column1='session_id',
column2='student_id')
学生观点
<label for="session_ranks"/>
<field name="session_ranks">
<tree string="Registered sessions" editable="bottom">
<field name="session_id"/>
<field name="rank"/>
</tree>
</field>
答案 0 :(得分:0)
为了满足您的需求,您应该进行以下更改:
class Student(models.Model):
_name = 'agsm.student'
session_ids = fields.Many2many('agsm.session',
relation="agsm_student_session",
column1='student_id',
column2='session_id')
session_ranks = fields.One2Many('agsm.student.session', 'student_id')
视图中的
<label for="session_ranks"/>
<field name="session_ranks">
<tree string="Registered sessions" editable="bottom">
<field name="session_id"/>
<field name="rank"/>
</tree>
</field>
editable =&#34; bottom&#34; 属性可以避免在学生和会话之间使用中间视图。
答案 1 :(得分:0)
您需要不使用many2many表,因为您使用桥接表不仅仅是桥接表。
class Student(models.Model):
_name = 'agsm.student'
student_session_ids = fields.One2many('agsm.student.session','Student Sessions')
class Rank(models.Model):
_name = 'agsm.student.session'
session_id = fields.Many2one('agsm.session', string='Session')
student_id = fields.Many2one('agsm.student', string='Student')
rank = fields.Integer(default=5)
class Session(models.Model):
_name='agsm.session'
视图
<label for="student_session_ids"/>
<field name="student_session_ids" >
<tree string="Registered sessions">
<field name="session_id"/>
<field name="rank"/>
</tree>
</field>