如何解决和防止多个字段成为odoo中的循环参考问题
在我的模块中,我被迫在大多数具有auto=true的模型中使用多个one字段,因此在数据库中创建了太多的fk,然后这个fk导致循环引用问题,而真正的问题是当多个用户工作时,软件的性能非常缓慢和滞后。我的问题是,如果任何人都可以帮我,我真的很感激。 提前谢谢如何解决和防止多个字段成为odoo中的循环参考问题,odoo,Odoo,在我的模块中,我被迫在大多数具有auto=true的模型中使用多个one字段,因此在数据库中创建了太多的fk,然后这个fk导致循环引用问题,而真正的问题是当多个用户工作时,软件的性能非常缓慢和滞后。我的问题是,如果任何人都可以帮我,我真的很感激。 提前谢谢 我试图减少多个One字段,但这并不能解决问题为了防止循环引用,您可以利用帮助器在Python约束内的记录分层结构中检查循环引用,并在检测到循环时引发错误,例如: @api.constraints('m2o_字段') def检查m2o字段(自身
我试图减少多个One字段,但这并不能解决问题为了防止循环引用,您可以利用帮助器在Python约束内的记录分层结构中检查循环引用,并在检测到循环时引发错误,例如:
@api.constraints('m2o_字段')
def检查m2o字段(自身):
如果不是self.\u检查\u递归(parent='m2o\u field'):
引发异常。ValidationError(
_(“无法创建递归关系”。)
如果检测到循环,
\u check\u recursion()
将返回False
。您可以将多对一字段的名称传递给\u check\u recursion()
,否则将使用\u parent\u name
类属性的值(默认情况下)。要添加防止循环关系的检查,请在
型号:
@api.constraints('parent_id'))
定义检查层次结构(自):
如果不是self.\u检查\u递归():
raise models.ValidationError(
“错误!无法创建递归类别。”)
如果不是默认的父id
,则应在\u check\u recursion()
中将特定的manyOne关系作为参数传递。
我使用了models.ValidationError
,因为我在Odoo-11环境中工作。但是\u check\u recursion()
方法将阻止层次结构无限循环