为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用域过滤器从 odoo13 模型中的所有其他记录中仅过滤出 Many2many

如何使用域过滤器从 odoo13 模型中的所有其他记录中仅过滤出 Many2many

四季花海 2022-12-14 10:56:44
我正在制作一个包裹模型,可以在其中制作包裹并在销售订单中使用它,我的模型名称是 sale.package。class Package(models.Model):    _name = 'sale.package'    _description = 'Package table'    name = fields.Char(string='Name', required=True)    width = fields.Float(string='Width')    height = fields.Float(string='Height')    length = fields.Float(string='Length')    maximum_weight = fields.Float(string='Maximum weight')为了在销售订单表单中使用它,我继承了 sale.order 模型并在销售订单中添加了一个 Many2many 字段来选择以前制作的包裹,我还创建了一个 Onchange 函数来更新新制作页面中的 One2many 字段在同一销售订单中。class SaleOrderPackage(models.Model):    _inherit = 'sale.order'    packs = fields.Many2many('sale.package', string='Package')    package_lines = fields.One2many('sale.package.lines', 'line_name', string='Package Lines')    @api.onchange('packs')    def _onchange_packs(self):        for rec in self:            lines = [(5, 0, 0)]            for line in self.packs:                values = {                    'name_on_line': line.name,                    'line_width': line.width,                    'line_height': line.height,                    'line_length': line.length,                    'line_maximum_weight': line.maximum_weight,                }                lines.append((0, 0, values))            rec.package_lines = lines到目前为止,一切都很好,我的新要求是向同一个销售订单添加一个智能按钮,点击它后,必须显示销售订单中所选包裹的树状视图。我已经添加了智能按钮并在 python 文件中定义了一个函数,它不仅返回所选的而且还返回所有使用该模型制作的包。    def selected_packages(self):        print(self.packs)        return {            'name': 'Selected Packages',            'domain': [],            'view_type': 'form',            'res_model': 'sale.package',            'view_id': False,            'view_mode': 'tree,form',            'type': 'ir.actions.act_window'        }由于我学习 Odoo 仅一周时间,因此我无法弄清楚如何在这种情况下使用域过滤器,请帮忙。提前致谢。
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

如果您只需要显示选定的包,您只需使用它们的 id 来过滤记录。

使用self.packs.ids返回与所选包对应的实际记录 ID 列表:

'domain': [('id', 'in', self.packs.ids)],


查看完整回答
反对 回复 2022-12-14
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信