Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

请教,@api.multi def write(self, vals): 返回{'warning': warning},无效??



  • 在@api.onchange中可以,在这里为什么不行,请教。
    [code]@api.multi
        def write(self, vals):
            parent_id = self.search([('id', '=', vals['parent_id'])])
            def check(self, id):
                if(self.parent_id):
                    return check(self.parent_id, id) and id != self.id
                else:
                    return id != self.id
            if check(parent_id, self.id):
                return super(classify, self).write(vals)
            else:
                warning = {
                    'title': "Warning!",
                    'message': "the available num Can't be more than the num",
                }
                return {'warning': warning}[/code]



  • 在@api.onchange中可以,在这里为什么不行,请教。
    [code]@api.multi
        def write(self, vals):
            parent_id = self.search([('id', '=', vals['parent_id'])])
            def check(self, id):
                if(self.parent_id):
                    return check(self.parent_id, id) and id != self.id
                else:
                    return id != self.id
            if check(parent_id, self.id):
                return super(classify, self).write(vals)
            else:
                warning = {
                    'title': "Warning!",
                    'message': "the available num Can't be more than the num",
                }
                return {'warning': warning}[/code]



  • 自己研究了下,已解决。。。。
    [code]instance.web.list.Editor.include(/** @lends instance.web.ListView# */{
            save: function () {
                var self = this;
                return this.form
                    .save(this.delegate.prepends_on_create())
                    .then(function (result) {
                        var created = result.created && !self.record.id;
                        if (created) {
                            self.record.id = result.result;
                        }
                        if (!_.isEmpty(result.warning)) {
                            new instance.web.Dialog(this, {
                                size: 'medium',
                                title:result.warning.title,
                                buttons: [
                                    {text: _t("Ok"), click: function() { this.parents('.modal').modal('hide'); }}
                                ]
                            }, QWeb.render("CrashManager.warning", result.warning)).open();
                        }
                        return self.cancel();
                    });
            },
        })[/code]



  • 为什么不是用raise 呢。事务会回滚的。



  • 谢谢


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待