在odoo中隐藏one2many关系中的字段

时间:2018-03-12 14:16:17

标签: python xml odoo-10

我有这个类:project.task有这个字段:

state = fields.state = fields.Selection([ ('draft', 'Draft'),
                                          ('sent', 'In progress')], default='draft')
task_line_ids = fields.One2many('project.task.line','task_id',string="Articles")

project.task.line课程中我有这一行:

progress = fields.Float()

现在我的xml代码中有:

<record name="task_form_view" model="ir.ui.view">
    <field name="name">Task Form View</field>
    <field name="model">project.task</field>
    <field name="arch" type="xml">
    <form>
    <header>
        <field name="state" widget="statusbar"/>
    </header>
        ....
    <notebook>
          <page name="Lines">
              <field name="task_line_ids">
                  <tree string="Tasklines" editable="bottom"> 
                      <field name="product_id" /> 
                      <field name="description"/> 
                      <field name="um_id"/> 
                      <field name="progress" />              
                  </tree> 
              </field>  
         </page>
    </notebook>
  </form>
</field></record>

现在我想要的是当状态为草稿时,树视图中名为progress的字段应该是不可见的。我改变了这样的进度字段:

 <field name="progress"  attrs="{'invisible': [('state','=','draft')]}" />

但它不起作用。我收到了这个错误:Error: Unknown field state in domain [["state","=","draft"]]

我在尝试此代码时遇到了同样的错误:

<field name="progress"  attrs="{'invisible': [('task_id.state','=','draft')]}" />

2 个答案:

答案 0 :(得分:0)

我认为在课堂上“project.task.line”你需要字段state = fields.Selection([('draft','Draft'),('sent','in in')],related =“task_id 。州”)。因为你在类“project.task.line”中使用的字段是当前的状态,所以它的类是“project.task”。

答案 1 :(得分:0)

使用此:

<field name="progress" attrs="{'column_invisible':[('parent.state','in', 
['draft'])]}"/>  

在xml中:

 <notebook>
      <page name="Lines">
          <field name="task_line_ids">
              <tree string="Tasklines" editable="bottom"> 
                  <field name="product_id" /> 
                  <field name="description"/> 
                  <field name="um_id"/> 
                  <field name="progress" attrs="{'column_invisible': 
                  [('parent.state','in',['draft'])]}"/>               
              </tree> 
          </field>  
     </page>
</notebook>