Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何动态设置字段属性(限制)?_Python_Odoo 11 - Fatal编程技术网

Python 如何动态设置字段属性(限制)?

Python 如何动态设置字段属性(限制)?,python,odoo-11,Python,Odoo 11,我有一个One2many字段需要设置限制, 我可以将静态数字设置为record\u id=fields.One2many('root.model','name',limit=10) 这将仅显示10条记录 但是现在我想为用户设置这个字段来更改它的限制 我将其属性更改为limit=lambda self:self.\u record\u limit() ,并将字段设置为record\u limit=fields.Integer(默认值=10) stock\u id=fields.One2many('

我有一个One2many字段需要设置限制, 我可以将静态数字设置为
record\u id=fields.One2many('root.model','name',limit=10)

这将仅显示10条记录

但是现在我想为用户设置这个字段来更改它的限制

我将其属性更改为
limit=lambda self:self.\u record\u limit()
,并将字段设置为
record\u limit=fields.Integer(默认值=10)

stock\u id=fields.One2many('bs.stock.material.details','name',limit=lambda self:self.\u record\u limit())
记录限制=fields.Integer(默认值=10)
定义记录限制(自身):
返回自我记录\u限制
我希望我可以通过设置
record\u limit
字段的数量来调整o2m字段的显示数量

例如,如果我没有设置记录限制,o2m总是在列表中显示10条记录。如果我将其设置为20,o2m可以显示20条记录

但我有一个错误:

  File "D:\odoo\odoo11_boshown\odoo-11.0\odoo\models.py", line 1481, in search
    res = self._search(args, offset=offset, limit=limit, order=order, count=count)
  File "D:\odoo\odoo11_boshown\odoo-11.0\odoo\models.py", line 3810, in _search
    limit_str = limit and ' limit %d' % limit or ''
TypeError: %d format: a number is required, not function

如何动态设置此限制?

您不能在odoo中设置One2many字段的动态限制。 您可以使用默认方法显示特定记录。 如果可以为显示记录提供大量记录,则只有两种方法。 否则,您可以在One2many字段记录中为应用筛选器添加默认方法或使用域

在代码中,您错误地使用了limit属性。 limit属性只接受整数值或数字。但你想通过考试