One2many字段上的Odoo条件只读字段消失

时间:2017-11-08 19:29:00

标签: openerp odoo-10

我在模型视图中有一个条件只读字段。该模型用作其父模型上的One2many字段。 当我编辑One2many字段的其中一个元素时,单击另一个元素,具有条件只读的字段的值将消失。

在我搜索此问题时,我在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>

因此,在编辑some_field并单击One2many字段的另一个元素后,conditional_readonly_field的值消失。问题是它可能是在第一次,第二次或一些点击次数之后(我一直在尝试并且它不一致)。

对于记录,当删除只读条件时,问题就会消失。

提前感谢任何建议!

1 个答案:

答案 0 :(得分:0)

是的,当你给出readonly属性时它会消失。 为了解决这个问题,在write方法中也传递create方法中的值。这将解决您的问题。