OpenERP中on_change的动态视图

时间:2014-04-16 10:48:53

标签: python xml openerp onchange

我遇到了一些问题" on_change"创建动态视图的方法。

我想根据"选择字段"来调整用户必须填写的字段。

如果用户选择" Personne Morale",则视图必须仅包含字段:" raison social","档案",adresse", "电话"而不是显示其他字段。

如果用户选择" Personne Physique",则视图必须包含以下字段:" nom"," prenom"," cin","档案",地址"," tel"。

请注意字段"档案"," adresse"," tel"," adresse"不打算改变,他们是共同的。

PS:不要介意身份

Python代码:

_columns = {

  'statut': fields.selection((('p','Personne Physique'), ('m','Personne Morale')),'Statut'),

 'nom': fields.char('Nom', size=100, required=True),

'prenom': fields.char('Prenom', size=100, required=True),

'cin': fields.char('N° CIN', size=100, required=True),

'raison_social':fields.char('Raison Social', size=100, required=True),

'dossier': fields.one2many('sayoo.dossier','id_dossier','demande d\'autorisation' ),

 'adresse': fields.char('Adresse', size=100, required=True), 

   'description': fields.text('Description'),

    'tel': fields.char('Numéro de Téléphone', size=20),
          }

1 个答案:

答案 0 :(得分:2)

你不需要on_change行为。只需在xml视图中使用attrs属性,如:

<field name="raison_social" attrs="{'invisible':[('statut','=','p')],'required':[('statut','=','m')]}" />
<field name="nome" attrs="{'invisible':[('statut','=','m')],'required':[('statut','=','p')]}" />

当然你不需要所需的部分,但我想在我的例子中向你展示这个想法。您可以将invisiblereadonlyrequired设置为attrs

我希望有所帮助: - )