【问题标题】:Limit the number of digits in integer?限制整数的位数?
【发布时间】:2014-06-25 10:48:12
【问题描述】:

有没有办法像在 char 类型中一样限制 OpenERP 中整数的位数? 我需要最多只能输入两位数的字段。

例如使用 char,您可以这样做:

from openerp.osv import fields

'char_field': fields.char(size=2),

那么如果你尝试输入两个以上的符号,它就不会写了。

但如果我创建整数字段:

'integer_field': fields.integer(),

它可以让我写任何我想要的数字。

【问题讨论】:

  • 使用 len(str(123)) 之类的东西来检查整数的长度(虽然不知道 openerp 是什么)?
  • 是的,我知道我可以在输入整数后用一些东西检查它(在创建/写入方法中)。但我想完全阻止这种情况。与 char 类型一样,您不需要检查长度是否超过大小限制,因为它根本不允许您输入更多符号。
  • @senthilnatang 是的,这可能是最好的方法。但是有一个微妙的问题。这是第一次创建记录,它应该让输入用户想要的任何信息(这是因为客户的特定工作性质。该用户可以随时被调用,他应该立即离开工作空间。所以他应该能够保存该记录) .这就是为什么我正在寻找方法来防止事先输入错误,但无论如何都要创建记录。
  • 那么你必须检查 create 和 write 方法来验证字段值
  • @senthilnatang 好吧,这实际上是一样的,因为它也会阻止创建/写入。按下确认按钮时进行验证。所以我想我可以在确认时实施这样的验证检查。唯一的问题是,确认方法已经满是各种检查了。

标签: python integer openerp


【解决方案1】:

您可以使用_constraint 来检查您的整数值,如果它不在您想要的范围内,则引发异常。

检查这个blog post about how to create a constraint

【讨论】:

  • 忘记了约束。好吧,我认为没有比这更好的方法来限制整数中的数字了。所以这应该做。谢谢。
猜你喜欢
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
  • 2016-08-05
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 2018-07-30
  • 2020-08-07
相关资源
最近更新 更多