我创建了一个新模型:
class rpe_mandate(orm.Model):
_name = 'rpe.mandate'
def _check_dates(self, cr, uid, ids, context=None):
for rec in self.browse(cr, uid, ids):
delivery_date = rec.delivery_date
receipt_date = rec.receipt_date
if delivery_date > receipt_date:
return False
return True
_columns = {
'delivery_date': fields.date('Delivery date'),
'receipt_date': fields.date('Receipt date'),
}
_constraints = [
(_check_dates, 'Error! Delivery date must be earlier than receipt date.', ['delivery_date', 'receipt_date',])
]如果接收日期早于交付日期,则需要显示错误消息。
但是使用我的代码,当我保存记录时,不会发生任何事情,在这两种情况下(如果接收日期早于交付日期,而反过来--我也尝试过检查我是否做错了-)
发布于 2014-11-12 07:05:23
您正在为rpe_mandate生成一个新的记录,但是通过一个many2many字段。因此,当您在弹出窗口中单击"Save“时,它没有存储在数据库中。您必须单击“保存”按钮,但在主表单中,要查看错误消息。
发布于 2014-11-11 13:44:40
试试这段代码
def _check_dates(self, cr, uid, ids, context=None):
for rec in self.browse(cr, uid, ids):
delivery_date = rec.delivery_date
receipt_date = rec.receipt_date
if delivery_date > receipt_date:
raise osv.except_osv(_("Alert !!"),_("Delivery date must be earlier than receipt date"))
return True不要忘记导入
从openerp.tools.translate进口
https://stackoverflow.com/questions/26862830
复制相似问题