在Odoo8中使用对象的域

时间:2017-04-24 05:36:17

标签: openerp odoo-8

在我的自定义模型中有一个one2many关系。字段就像,

*。XML

<field name="o2m_field>
  <tree>
   <field name="a"/> // many2one relation
   <field name="b  domain=[('name','=',a.second_field)]/> // many2one relation
   <field name="c"/>
   <field name="d"/>
 </tree>

*。PY

_name='a.a'
_columns ={
            'name':fields.char('Name'),
            'second_field':fields.char('Second field')
}

但是收到JS错误:错误:AttributeError:object没有属性'second_field'。

2 个答案:

答案 0 :(得分:2)

您无法直接在域中访问second_field。

您应该创建与second_field相关的商店False并在域中使用。

前:

  second_field=fields.Char(related="a.second_field",store=False,readonly=True)

  <field name="b"  domain=[('name','=',second_field)]/>

这可能会对你有帮助。

答案 1 :(得分:1)

在客户端使用first, *rest = array rest.each_with_object([[first]]) { |n, arr| (n == arr.last.last+1) ? (arr.last << n) : (arr << [n]) }. map { |a| (a.size == 1)? a.first.to_s : "#{ a.first }-#{ a.last }" }.join(",") #=> "-6,-3-0,3,5,7-9,14-15,17" attrsdomain时,您无法使用未在同一视图中列出的字段(即使存在于Model类中),这就是为什么你总是需要将这些值传递给客户端,就像在这种情况下context建议使用相关字段一样。