我对Openerp 7.0有疑问。我想循环一个one2many Field。 这是我的Model类:
class my_class(osv.osv):
_name = "my.name"
_inherit = 'mail.thread'
_columns = {
'partners' : fields.one2many('my.other.class', 'other_id' , 'partner'),
}
my_class()
class my_other_class(osv.osv)
_name = 'my.other.class'
_columns = {
'type' : fields.char( .... ),
....
'other_id' : fields.many2one('my.class')
}
my_other_class()
XML部分文件:
<t t-foreach="record.partners.raw_value" t-as="p">
<div>
Out:
<t t-esc="p" />
<t t-esc="p.type" />
<t t-esc="p.cid" />
<t t-esc="p.notification" />
</div>
</t>
我有多个合作伙伴:
如果我运行代码,它只打印: 出:12 出:13
12,13是内部ID
如何在我的one2many Field上正确循环? 我为Odoo 8找到了很多解决方案,但是他们不在Openerp 7上工作:/
谢谢你, AntiMuffin
答案 0 :(得分:0)
您应该在 my.other.class 模型中定义名称列。 如果您不需要这样的列,则至少应该为要使用的列而不是名称定义 _rec_name 变量:那是因为当您编写时
<t t-esc="p" />
odoo尝试编写对象,但没有定义默认值,然后写入内部id。
在您的情况下,请尝试明确
<t t-esc="p.id" />
也许在odoo 7中存在一些问题,而且它没有显示其他字段。
如果这不起作用,您也可以尝试:
<t t-esc="p.id +' '+p.type+' '+p.cid+' '+p.notification" />