首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何动态设置字段属性(限制)?

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

Stack Overflow用户
提问于 2019-11-08 12:35:49
回答 1查看 347关注 0票数 0

我有一个One2many字段,有设置限制的要求,我可以将静态数字设置为record_ids = fields.One2many('root.model', 'name' ,limit=10 )

这将仅显示10条记录。

但现在我想为用户设置此字段以更改其限制。

我将其属性更改为limit = lambda self: self._record_limit(),并将一个文件设置为record_limit = fields.Integer(default=10)

代码语言:javascript
复制
    stock_ids = fields.One2many('bs.stock.material.details', 'name', limit= lambda self:self._record_limit())
    record_limit = fields.Integer(default=10)

def _record_limit(self):
    return self.record_limit

我希望我可以通过设置o2m字段的数量来调整record_limit字段的显示数量。

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

但是我得到了这个错误:

代码语言:javascript
复制
  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

如何动态设置此限制?

EN

回答 1

Stack Overflow用户

发布于 2019-12-11 17:15:43

您不能在odoo中设置One2many字段的动态限制。您可以使用默认方法显示特定记录。如果你能给出一些记录的static来显示记录,只有两种方法。否则,您可以为One2many字段记录中的apply filter添加默认方法或使用域。

在您的代码中,您以错误的方式使用了limit属性。limit属性只接受整数值或数字。但是您正在尝试传递iterable。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58760426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档