【发布时间】:2021-06-16 02:05:37
【问题描述】:
我有 odoo 8。我想计算来自 ir_attachment 的附件,并将其显示在 stock.production.lot 中。这是我的 .py
class stock_production_lot(models.Model):
_inherit='stock.production.lot'
@api.multi
def get_attachment_info(self):
for lot in self:
so_line_ids = self.env['ir.attachment'].search([('res_id','=',lot.id)])
for pick in so_line_ids:
pick.count_attachment = 0
if pick.datas_fname:
pick.count_attachment = len(pick.datas_fname)
count_attachment = fields.Float(string='Total Attachment', compute='get_attachment_info')
这就是风景
<field name="count_attachment" />
谢谢
【问题讨论】:
-
在您的方法中添加打印并在您的第一条消息中添加结果以提供更多信息。非常重要,当您通过 res_id 搜索 ir.attachment 时。在您的搜索中添加 res_model,因为 ir.attachment 对于 2 个不同的 res_model 可以有 2 个相同的 res_id
-
你想用下面的代码
pick.count_attachment = len(pick.datas_fname)做什么以及为什么你在ir.attachment模型中设置count_attachment字段? -
您确实需要更多地考虑您的代码。请添加更多详细信息,例如您要添加新字段的型号。为什么将附件记录集(搜索)命名为
so_line_ids。在“正常”代码中,我期望模型sale.order.line记录的 ID 列表。然后so_line_ids上的第二个for 循环,为什么现在是picks?为什么对附件的计数需要浮动?你期望有一半的附件吗?