Openerp 如何使用相关字段设置多个一个对象的属性?

Openerp 如何使用相关字段设置多个一个对象的属性?,openerp,odoo-9,Openerp,Odoo 9,我是python和odoo的新手。我正在开发一个自定义模块来实现一所学校的学生申请。我的主要目标是收集应用程序数据。我有三种型号 class ApApplicationsModel(models.Model): _name = 'ap.applications.model' class ApPrevSchoolModel(models.Model): _name = 'ap.prevschool.model' class ApPersonModel(mode

我是python和odoo的新手。我正在开发一个自定义模块来实现一所学校的学生申请。我的主要目标是收集应用程序数据。我有三种型号

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个多21链接

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中

我想在启动表单视图以显示和隐藏某些字段时,将人员类型设置为“学生”、“家长”或“监护人”

我该怎么做


这样处理可能不是一个好的oo实践。那么我该如何实现它呢?

我不知道您到底想要实现什么,但我猜您希望根据某种条件(在本例中为人员类型)隐藏或显示某些字段。 因此,您要做的是使所有字段的属性值都是您要隐藏或显示的,然后它将自动隐藏或显示。 小型示例:

<field name="student_age" attrs="{'invisible': [('ap_persontype'),'not in',['parent','grd']]}"/>

我希望这对你有帮助。

  • 请对此逻辑仅使用一个模块,无需使用多个模型并尝试以下代码:
  • 如果ap_persontype=Student,则其他字段不可见。另一个字段的逻辑相同。
    这里是我的代码逻辑

    
    


我首先关心的是,根据视图构造的多个One对象加载/初始化表单时,如何将ap_persontype设置为“父对象”或“grd”。我的第二个问题是启用或禁用字段。我正在努力找出解决我第一个问题的正确方法。如何动态地将ap_persontype设置为“学生”或“家长”或“grd”?我的理解是,我们必须中断加载类功能。我该如何用奥多写一篇专栏文章呢?不,穆罕默德:D一切都比你想象的要简单。一切都是动态工作的,更改ap_persontype值将自动更改字段的视图。我说得再简单不过了。。。