例如最近在开发一款基于车辆的业务系统,所有业务订单都是基于一辆车辆进行的,为避免不同业务员输入同一车辆的订单,就需要在业务员录入车辆号的时候对车牌号进行唯一性验证,如果系统中已经存在该车辆车牌号则跳出提示,阻止该业务的录入。
如何实现Odoo中这种字段唯一值的约束呢?
首先,我们定义一个普通字段cph,如下:
cph = fields.Char('车牌号')
接下来,我们在_sql_constraints中添加对应的约束定义,如下:
_sql_constraints = [ ('check_uniq_cph', 'unique(cph)', '车牌号已经存在!') ]
括号中三个参数依次是约束定义名、约束定义内容、d出提醒内容。
在_sql_constraints定义中可以填写多个字段的约束定义,每个用()包裹,之间用逗号分隔开即可。
这样,在输入重复的车牌号后点击保存时,系统则跳出下面的提示框,并停止保存动作:
例如这一段就是继承了模型之后添加了自定义字段from openerp import models, fields
class SaleOrder(models.Model):
_inherit = 'sale.order'
delivery_price = fields.Float(string='快递费用', compute='_compute_delivery_price')
carrier_id = fields.Many2one("delivery.carrier", string="运输方式")
然后在对应XML的视图中添加自定义的字段(或者继承视图修改,方法很多不做详细介绍了),然后重启升级模块。刷新之后就能在界面上看见了。
下面这段代码是通过继承视图,然后把字段加到phone显示之后
<xpath expr="//field[@name='phone']" position="after">
<field name="delivery_price"/>
<field name="carrier_id"/>
</xpath>
写起来其实挺简单,当然要深入了解各个字段,三种继承区别还需要深入。
以上都是手敲的,没有太多的思考,有什么不懂可以给我私信。
这是我以前回答过的一个答案
合并成一张交货单的前提是销售单的抬头要一样吧 当然可以多个订单合并为一个交货文件了。这个是SAP标准功能!!!当然,要满足很多条件的前 提下。楼上的就是一个重要的条件,如果不能满足,系统会出提示 1欢迎分享,转载请注明来源:内存溢出
评论列表(0条)