Python 如何返回manyOne字段中的列表对象

Python 如何返回manyOne字段中的列表对象,python,odoo-11,Python,Odoo 11,我已经宣布了一个多人领域 packaging_id = fields.Many2one( 'product.packaging', 'Package type', compute='_compute_package_type', index=True) 所以我需要做一个逻辑来返回我想要在列表中显示的对象。我尝试过使用计算选项,但我不确定这是否正确。跟随我的计算领域 @api.multi def _compute_package_type(self):

我已经宣布了一个多人领域

packaging_id = fields.Many2one(
        'product.packaging', 'Package type', compute='_compute_package_type',
        index=True)
所以我需要做一个逻辑来返回我想要在列表中显示的对象。我尝试过使用计算选项,但我不确定这是否正确。跟随我的计算领域

@api.multi
    def _compute_package_type(self):
        pckdel = self.batch_id.package_delivery_group
        order = self.env['ord.data'].search([("pckdelgrp", "=", pckdel)], limit=1)
        type = self.env['delivery.carrier'].search([("name", "=", order.deliverymethod)], limit=1)
        if type.delivery_type == 'test' or type.delivery_type == 'xxx':
            package_objs = self.env['product.packaging'].sudo().search([])
        else:
            package_objs = self.env['product.packaging'].search([("packager_carrier_type", "=", type.delivery_type)])
        self.packaging_id =  package_objs.ids
但是,它失败了,并且不会与包_objs一起出现在下拉列表中。有人能帮我吗


非常感谢您

在这种情况下,您应该在
计算上使用

def compute_package_type(self):
            pckdel = self.batch_id.package_delivery_group
            order = self.env['ord.data'].search([("pckdelgrp", "=", pckdel)], limit=1)
            type = self.env['delivery.carrier'].search([("name", "=", order.deliverymethod)], limit=1)
            if type.delivery_type == 'test' or type.delivery_type == 'xxx':
                package_objs = self.env['product.packaging'].sudo().search([])
            else:
                package_objs = self.env['product.packaging'].search([("packager_carrier_type", "=", type.delivery_type)])
            return [('id','in',package_objs.ids)]


packaging_id = fields.Many2one(
        'product.packaging', 'Package type', domain=compute_package_type)

你好,普鲁思维,非常感谢您的快速回复。但是,当我尝试接收到属性中使用的错误字段“\u compute\u package\u type”必须出现在视图中,但丢失:-“domain=”中的“\u compute\u package\u type”您好,我编辑了我的答案,请检查。在字段声明上定义函数Nice Pruthvi再次感谢您!!!它工作完美,但只有一次我想有这个方法,然后域'计算“每次我尝试打开下拉列表时。你认为这是可能的吗?是的,如果我们在某个依赖字段的
onchange上执行此逻辑,这将在该字段每次更改时返回域。否则,如果您的匹配条件在每次打开下拉列表时都没有更改,则这将适用于您。如果匹配条件是固定的,则此解决方案是最佳的,因为每次使用新记录时,在打开该记录时只应匹配一次。如果您的匹配条件基于其他字段的值发生变化,请告诉我。