Odoo 开发杂记


数据库约束
sql约束:使用_sql_constraints属性。
属性值是一个列表,每一个列表元素有三个内容:(name,sql_definition,message):
name是约束名,
sql_definition是一个postgresql语句,可以为uniqe检查、或者用聚集函数判断某字段值等等,结果返回值是布尔类型即可,
message是校验失败时返回的错误消息。
项目唯一约束 示例如下:

_sql_constraints = [
        ('check_uniq_name', 'unique(name)', u'此项目已经存在!')
    ]

注:sql约束添加时,数据库中不符合的需要删除,否则约束不生效

装饰器约束

from odoo.exceptions import ValidationError

@api.constrains('housing_area')
def _check_area(self):
    for record in self:
        if record.housing_area < 0:
            raise ValidationError("建筑面积不得小于0: %s" % record.housing_area)

  • onchange 是通过前端方式修改 如果需要保存只读字段的话 需要加force_save = “True”
    <field name="name" readonly="1" force_save="1"/>
  • 字段数据不存储在数据库时,排序的小三角,不可点击。
  • 默认排序是按照数据库中id升序排
  • 视图颜色控制
  • <tree string="xxx" decoration-bf="判断">
    在这里插入图片描述
  • 在状态等于7的时候隐藏编辑按钮
status_id = fields.Selection(ENG_STATUS, string='工程状态', default='0')
x_css = fields.Html(
    string='CSS',
    sanitize=False,
    compute='_compute_css',
    store=False,
)
@api.depends('status_id')
def _compute_css(self):
    for application in self:
        if application.status_id == '7':
            application.x_css = '<style>.o_form_button_edit {display: none !important;}</style>'
        else:
            application.x_css = False

放在xml中
<field name="x_css" invisible="1"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值