如果OpenERP中有一个或两个字段为空,如何抛出警告

时间:2013-12-17 08:20:37

标签: python postgresql openerp

我对OpenERP有疑问。如果其中一个字段为空,如何抛出警告?例如,在添加产品时,如果我们忘记添加Name属性,则应该发出警告。

在这种情况下,我想添加更多必填字段,例如产品代码等。抱歉,我对这个系统还不熟悉。

2 个答案:

答案 0 :(得分:2)

一种方法是可以添加约束。 _constraint是OpenERP中的预定义字段。它用于在对象上添加约束。它以元组列表作为参数。列表中的元组包含三个参数

  1. 方法(检查约束)
  2. 消息(最终用户的约束)
  3. 字段列表(应用约束的字段)

    如果条件在创建和更新记录时返回False,则会触发_constraint并显示消息。

    _constraint的示例代码显示如下。

    def _check_length(self, cr, uid, ids, context=None):
        record = self.browse(cr, uid, ids, context=context)
        for data in record:
            if data.length < 0:
               return False
        return True
    
    
    _columns = {'length': fields.integer('Length'),}
    
    _constraints = [(_check_length, 'Error: Length must be Positive', ['length'])]
    
  4. 另一种方法是修改create和write函数(这是openerp基函数)并检查是否指定了所有必要的数据。

答案 1 :(得分:0)

为了检查重复值,您可以使用_sql_constraints。

您只需要执行以下代码。

例如来自account_payment:

  _sql_constraints = [
      ('name_uniq', 'UNIQUE(name)', 'The payment line name must be unique!'),
  ]

希望这会对你有所帮助。

此致