2016-03-21 6 views
0

私はpythonとodooの初心者です。私は学校用の学生用アプリケーションを実装するカスタムモジュールを開発しています。私の主な目的は、アプリケーションデータを収集することです。私は3つのモデルを持っています。関連フィールドを使用してmany2oneオブジェクトの属性を設定するにはどうすればよいですか?

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は、生徒、親、保護者の詳細を保存するために使用されます。このために私は目に見えない選択をしている

3 many2oneリンクは私がap.person.model

ap_persontype = fields.Selection(
     [('student','Student'),('parent','Parent'),('grd','Guardian')], 'Person Type',default='student', track_visibility='onchange') 

フィールドを持っている

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属性フォームの表示が開始され、一部のフィールドを表示したり非表示にしたりする際に、「学生」または「親」または「保護者」に人のタイプを設定する必要があります。

どうすればよいですか?

このように対処するのは良いことではありません。どのように私はそれを達成するのですか?

+0

ですこの見解によって構築されている。私の第二の懸念は、フィールドを有効または無効にすることです。私は最初の懸念に対処する正しい方法を特定するのに苦労しています。 – Mohammed

答えて

0

私はあなたが達成したいと思っていることを知っていませんが、何かの条件(この場合は人のタイプ)によっていくつかのフィールドを表示したり隠したりしたいと思います。 あなたがしたいのは、すべてのフィールドに属性値を作成して表示または非表示にしてから、自動的に非表示または表示することです。 ミニの例:

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

あなたのお役に立てば幸いです。

+0

ap_persontypeを 'student'または 'parent'または 'grd'に動的に設定するにはどうすればよいですか?私の理解は、on_loadの種類の関数を中断しなければならないということでした。 odooにon_loadを書き込むにはどうすればよいですか? – Mohammed

+0

モハメドなし:Dはすべてあなたが思っているよりも簡単です。すべてが動的に動作し、ap_persontype値を変更すると自動的にフィールドのビューが変更されます。もっと単純に言うことはできません... –

1
  • このロジックのために複数のモデルを使用してこのコードを試してみてくださいする必要がモジュールを1つだけ使用しないでください:
  • ap_persontype =学生その後、目に見えない他のフィールド場合。別のフィールドと同じロジックです。
    ここに私のコードのロジックは、私の最初の懸念は、フォームがロードされたとき、私はmany2oneオブジェクトに応じて、初期化/「親」または「GRD」に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',]]}"/>

関連する問題