如何在单击按钮时获得仅特定一种产品的采购订单?

时间:2021-02-01 20:06:00

标签: python odoo odoo-13

我在产品级别添加了一个智能按钮。从视图中可以在每个产品上看到该按钮。当我点击该按钮时,我想打开该特定产品的采购订单。

这是我点击按钮的方法。

    def view_purchase_order(self):
        action = self.env["ir.actions.actions"]._for_xml_id("purchase.purchase_rfq")
        print(self, "SELFFFFFFFFFFFFFFFFFFFF")
        tree_view = [(self.env.ref('purchase.purchase_order_tree').id, 'tree')]
        action['views'] = tree_view
        action['res_id'] = self.id
        return action

我在自定义视图中继承了 product.template

我已经在 ID 中设置了该产品的 action['res_id'],但我仍然收到所有采购订单记录。

谁能帮助我如何获得特定产品的采购订单?

3 个答案:

答案 0 :(得分:0)

self 代表记录集。所以你可以通过 id 获取它。

例如,self.id

答案 1 :(得分:0)

你也可以试试这个

def view_purchase_order(self):
    self.ensure_one()
    return {
            'type': 'ir.actions.act_window',
            'name': 'Purchase Orders',
            'view_mode': 'tree, form',
            'res_model': 'purchase.order',
            'domain': [('order_line.product_id', '=', self.id)],
            'context': "{'create': False}"
        }

答案 2 :(得分:0)

从您的最后一条评论来看,Long 看起来您在 Error 上,因此要获得 template 访问权限,您需要像这样设置。 您可以采用 Adam 解决方案,尝试更改此行,

product
相关问题