我是python和odoo的新手。我正在开发一个自定义模块来实现学校的学生申请。我的主要目标是收集申请数据。我有3个型号。
class ApApplicationsModel(models.Model):
_name = 'ap.applications.model'
class ApPrevSchoolModel(models.Model):
_name = 'ap.prevschool.model'
class ApPersonModel(models.Model):
_name = 'ap.person.model'
_inherit = 'op.student'
ApPersonModel将用于存储学生,家长和监护人的详细信息。为此,我有一个不可见的选择属性ap_persontype
中已定义了3个多2个链接
ap_father_id = fields.Many2one('ap.person.model','Father Details', readonly=False,related='ap_prevschool_model.ap_name', store=True)
ap_mother_id = fields.Many2one('ap.person.model','Mother Details', readonly=False)
ap_student_id = fields.Many2one('ap.person.model','Student Details')
我有一个字段
ap_persontype = fields.Selection(
[('student','Student'),('parent','Parent'),('grd','Guardian')], 'Person Type',default='student', track_visibility='onchange')
在ap.person.model
中我希望在启动表单视图以显示和隐藏某些字段时将人员类型设置为“学生”或“父母”或“监护人”。
我该怎么做?
像这样处理可能不是一个好的做法。我如何实现它?
答案 0 :(得分:0)
我不知道你到底想要实现什么,但我想你想隐藏或显示一些字段的条件(在这种情况下的人的类型)。 因此,您要做的是将属性值设置为要隐藏或显示的所有字段,然后它将自动隐藏或显示。 小例子:
<field name="student_age" attrs="{'invisible': [('ap_persontype'),'not in',['parent','grd']]}"/>
我希望它对你有所帮助。
答案 1 :(得分:0)
如果ap_persontype =学生则不可见其他字段。另一个领域的逻辑相同。
这里我的代码逻辑是
<field name="ap_student_id" attrs="{'invisible': [('ap_persontype'),'not in',['student',]]}"/>
<field name="ap_mother_id" attrs="{'invisible': [('ap_persontype'),'not in',['parent',]]}"/>
<field name="ap_father_id" attrs="{'invisible': [('ap_persontype'),'not in',['parent',]]}"/>