SQL Odoo 11 中没有约束 运行

SQL Constraints are not running in Odoo 11

问题

我有以下型号myModel

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class myModel(models.Model):
    _name = 'myproject.myModel'

    name= fields.Char('Name', size=9, required=True)
    startDate = fields.Datetime('Start date',required=True)
    endDate= fields.Datetime('End date',required=True)

    _sql_constraints = [('date_constraint', 'CHECK((endDate > startDate))', 'End date must be later than start date')]

问题是 sql 约束没有做任何事情。我试过:

解决方案

The problem was that the field contained uppercase and it seems that the sql_constraint converts everything to lowercase, so that field was not found in the database. So I convert startDate to startdate and endDate to enddate.

欢迎光临!感谢您发布一个包含所有需要的详细信息的好问题。

您需要更新插件。

如果还是不行,检查日志。如果任何预先存在的记录违反它,Odod 将无法安装 SQL 约束。在这种情况下,它将记录警告。删除或修复该记录并再次升级模块。

避免更改字段名称的另一种可能解决方案,“”字段名称,我在“独特”情况下进行了测试

_sql_constraints = [('date_constraint', 'CHECK(("endDate" > "startDate"))', 'End date must be later than start date')]