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



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



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



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



  • 谢谢


登录后回复
 

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