首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为_constraints模型声明OpenERP?

如何为_constraints模型声明OpenERP?
EN

Stack Overflow用户
提问于 2014-11-11 10:35:16
回答 2查看 207关注 0票数 0

我创建了一个新模型:

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

如果接收日期早于交付日期,则需要显示错误消息。

但是使用我的代码,当我保存记录时,不会发生任何事情,在这两种情况下(如果接收日期早于交付日期,而反过来--我也尝试过检查我是否做错了-)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-12 07:05:23

您正在为rpe_mandate生成一个新的记录,但是通过一个many2many字段。因此,当您在弹出窗口中单击"Save“时,它没有存储在数据库中。您必须单击“保存”按钮,但在主表单中,要查看错误消息。

票数 0
EN

Stack Overflow用户

发布于 2014-11-11 13:44:40

试试这段代码

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

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

https://stackoverflow.com/questions/26862830

复制
相关文章

相似问题

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