Python 如何使用记录列表将域应用于Odoo中的多个字段

Python 如何使用记录列表将域应用于Odoo中的多个字段,python,odoo,Python,Odoo,我有一个实体“pay_activity”,带有一个antivity(activity_id)和一个purchase(purchase_id)。 该采购具有与该采购相关的活动列表(活动ID)。 我想将域应用于活动,因此用户只能在购买活动列表中选择一个活动(购买活动)。 我尝试将domain=[('id','in',purchase\u activity)]应用于活动字段,但它显示了一个错误“RecursionError:调用Python对象时超出了最大递归深度”。 如何将域应用于“活动\u id”

我有一个实体“pay_activity”,带有一个antivity(activity_id)和一个purchase(purchase_id)。 该采购具有与该采购相关的活动列表(活动ID)。 我想将域应用于活动,因此用户只能在购买活动列表中选择一个活动(购买活动)。 我尝试将domain=[('id','in',purchase\u activity)]应用于活动字段,但它显示了一个错误“RecursionError:调用Python对象时超出了最大递归深度”。 如何将域应用于“活动\u id”字段,以确保用户仅选择与采购相关的所有活动列表中的活动(“采购\u活动”)? 这是我的代码:

class CenterPayActivity(models.Model):

    _name = 'center.pay_activity'
    _description = 'Permite distribuir los pagos entre las actividades'


    purchase_id = fields.Many2one('center.purchase', string='pago')

    purchase_activity = fields.Many2many('center.activity', related="purchase_id.activity_ids")

    activity_id = fields.Many2one('center.activity', string='Actividad', required=True, domain=[('id','in',purchase_activity)] )

字符串域应该是动态的,并且只在客户端进行计算

在表单视图中使用字段域,它将在显示现有记录以供选择时应用:

<field name="activity_id" domain="[('id', 'in', purchase_activity)]"/>

字符串域应该是动态的,并且只能在客户端进行评估

在表单视图中使用字段域,它将在显示现有记录以供选择时应用:

<field name="activity_id" domain="[('id', 'in', purchase_activity)]"/>


很抱歉,这两种方法都不起作用。我已经尝试过这段代码,它也能起作用,但我认为从onchange方法应用域不是一个好主意。可以从其他函数应用该动态域,可能是在窗体打开时@api.onchange('activity_id')def_change_activity(self):res={}res['domain']={'activity_id':[('id','in',in',self.get_id())]}返回res def get_id(self):list_id=[]用于self.purchase中的活动:list_id.append(activity.id)return list_id`我更新了答案并删除了字段定义(ORM)中使用的域。您需要在表单视图中使用域。检查我的编辑。对不起,没有工作。该下拉列表未显示任何元素,因此无法显示。我必须使“购买活动”出现在视图中,但即使这样也不起作用``它应该起作用,我怀疑错误来自其他地方。请添加重现该问题所需的最小示例?抱歉,但这两种方法都不起作用。我已经尝试了这段代码,它也起作用,但我认为从onchange方法应用域不是一个好主意。可以从其他函数应用该动态域,可能是在窗体打开时@api.onchange('activity_id')def_change_activity(self):res={}res['domain']={'activity_id':[('id','in',in',self.get_id())]}返回res def get_id(self):list_id=[]用于self.purchase中的活动:list_id.append(activity.id)return list_id`我更新了答案并删除了字段定义(ORM)中使用的域。您需要在表单视图中使用域。检查我的编辑。对不起,没有工作。该下拉列表未显示任何元素,因此无法显示。我必须使“购买活动”出现在视图中,但即使这样也不起作用``它应该起作用,我怀疑错误来自其他地方。请添加重现问题所需的最低示例?