【问题标题】:Openerp 7 - QWeb - Foreach one2manyOpenerp 7 - QWeb - Foreach one2many
【发布时间】:2016-02-12 09:25:17
【问题描述】:

我对 Openerp 7.0 有疑问。我想循环一个 one2many 字段。 这是我的模型类:

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>

我有多个合作伙伴:

  • ID 类型通知
  • 1 客户真实
  • 2 安装程序真
  • 3 员工虚假

如果我运行代码,它只会打印: 出局:12 出局:13

12,13 是内部 ID

如何正确循环我的 one2many 字段? 我为 Odoo 8 找到了许多解决方案,但它们不适用于 Openerp 7:/

谢谢你, 反松饼

【问题讨论】:

  • Qweb 在 OpenERP 7.0 中不可用,仅在 odoo 8.0 或更高版本中可用
  • 是的,我之前在其他帖子中读过。但我可以毫无问题地使用大部分 Qweb :\

标签: python openerp openerp-7 qweb


【解决方案1】:

您应该在 my.other.class 模型中定义一个 name 列。 如果您不需要这样的列,您至少应该为您要使用的列定义一个 _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" />

【讨论】:

  • 你好,我试过了。我已将 _rec_name 设置为键入。但是输出是一样的:o 此外,我使用了&lt;t t-esc="p.id + ' ' + p.type + ' ' + p.valid_from + ' ' + p.valid_until + ' ' + p.notification" /&gt;,但输出只是“未定义未定义......”
  • 我不明白视图的 for-each 中的 raw_value。尝试删除它:
  • 如果我不使用 raw_value,我会得到所有合作伙伴,而不仅仅是我需要的合作伙伴 O.o 如果我记录(t-log)record.partners,我会得到以下输出: context Object {} domain [] raw_value [12, 13] 0 12 1 13 关系 "my_class.partner" 关系字段 "other_id" 可选真字符串 "my_class.partner" 类型 "one2many" 值 "(2 Datensätze)" 视图对象 {}
  • 请在您的代码中添加模板的 response.render。此时,您应该选择要发送到模板的合作伙伴。你不需要 raw_value。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多