微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过 production_id 进行搜索?

如何解决如何通过 production_id 进行搜索?

我正在尝试从制造订单获取字段到相关工作订单。

我试过了:

for record in records:
  if record.production_id:
    so = env['mrp.production'].search([('name','=',record.production_id)])
    if so:
      record.write({"x_customer": so.x_customer_nick_name})

然而,这不起作用,但如果我搜索制造名称的实际生产 ID 名称,它会按预期工作:

for record in records:
  if record.production_id:
    so = env['mrp.production'].search([('name',record.'Boost/BoMO/73222')])
    if so:
      record.write({"x_customer": so.x_customer_nick_name})

我相信这是由于 production_id,从原始数据我可以看到它是 [11212,'Boost/BoMO/73222']

所以我只需要第一个元素:

 so = env['mrp.production'].search([('name',record.production_id[1])])

不返回 production_id 的字符串名称。我应该如何获取这些数据?

错误代码

 pobjs = [adapt(o) for o in self._seq]\npsycopg2.ProgrammingError: can\'t adapt type \'dict\'\n'>

解决方法

如果production_id是mrp.production关系,请试试这个:

if record.production_id:
    so = record.production_id
    If so:
         record.write({"x_customer":so.x_customer_nick_name})

production_id 是 mrp.production 的 Many2One 字段,因此您可以使用它来访问 mrp.production 中的任何字段,并且在您的情况下,您希望获得制造订单的名称,因此它应该类似于以下:

so = self.env['mrp.production'].search([('name','=',record.production_id.name)])
,

无法在此处或 odoo 论坛上找到解决方案。对于其他寻求解决方案的人,我最终使用了 Web API。我抓取了工作订单和生产 ID 制造订单。构建了一个用循环写入 WO 的元组。

  models.execute_kw(db,uid,password,'mrp.workorder','write',[workorders_id,{
                'x_for_customer': x_customer_nick_name}
            }])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。