2017-11-08 6 views
1

モデルのビューに条件付き読み取り専用フィールドがあります。このモデルは親モデルのOne2manyフィールドとして使用されます。 One2manyフィールドの要素の1つを編集するときに、別の要素をクリックすると、条件付き読み取り専用フィールドの値が表示されなくなります。OneooManyフィールドのOdoo条件付き読み取り専用フィールドが消えます

この問題の検索では、次の関連問題がodoo githubにあります。

私の問題は全く同じですが、フィールドの値は、読み取り専用条件がFalseの場合には完全に消えます。条件がTrueの場合、要素の外側(別の要素またはフォームの外側)をクリックすると値が再び表示されます。

基本的には、モデルは以下のとおりです。

One2manyクラス:

class ChildClass(models.Model): 
    _name = 'child.class' 
    some_field = fields.Integer() 
    conditional_field = fields.Boolean() 
    conditional_readonly_field = fields.Integer() 
    parent_field = fields.Many2one(
     'parent.class' 
    ) 

親クラス:だから

class ParentClass(models.Model): 
    _name = 'parent.class' 
    one2many_field = fields.One2many(
     'child.class', 
     'parent_field' 
    ) 

ビュー

<odoo> 
    <data> 
    <record model="ir.ui.view" id="view_draft_order_form"> 
     <field name="name">parent.class.form</field> 
     <field name="model">parent.class</field> 
     <field name="arch" type="xml"> 
     <form> 
      <field name="one2many_field"> 
      <form> 
       <field name="some_field"/> 
       <field name="conditional_readonly_field" attrs="{'readonly': [('conditional_field', '=', True)]}"/> 
      </form> 
      </field> 
     </form> 
     </field> 
    </data> 
<odoo> 

、conditional_readonly_fieldジの値some_fieldを編集してOne2manyフィールドの別の要素をクリックすると消えます。問題は、1回目、2回目、またはいくつかのクリック数の後である可能性があるということです(私は試していて、一貫していません)。

読み取り専用条件が削除されると、問題は消えます。

ご協力いただきありがとうございます。

答えて

0

はい、読み取り専用属性を指定すると消えます。 この問題を解決するには、createメソッドの値をwriteメソッドに渡します。これはあなたの問題を解決します。

+0

こんにちは、お返事ありがとうございます! あなたの答えは値dictに値Falseを持つため、値がバックエンドで失われないように役立ちますが、これは既存のレコードに対してのみ機能します。 しかし、値はフロントエンドではまだ消えており、それは実際に私の問題です。あなたはこの問題を参照しているodooのjavascriptコードについて知っていますか? –

関連する問題