如何检查浮动字段并为 Odoo v8 中的任何操作提供约束

How to check for a float field and give a constraint for any action in Odoo v8

假设,在自定义模块中,我有以下字段:

product_id、stock_location、stock_move、等等

在另一个自定义模块上,我有一个 Float 字段,它将有一个数量,它将代表一个财政年度。

因此,在我进行任何移动之前,我应该检查此 Float 字段,并以某种方式将其数据与产品或我将要移动的产品进行比较(产品有一个名为 'sale_price' 的字段,但它可能甚至是产品上的自定义 Float)

我不知道我是不是在解释自己,但我想要的是比较这些字段,并对操作进行约束,如果 custom_fiscal Float 字段的值低于 product_price 浮动一个,然后显示一个 ValidationError 或类似的东西。

这些字段位于两个不同的模块上,尽管这可以通过继承和模块依赖实现。

我不确定使用 _constraint_sql_constraint

是否可以实现这种情况

有什么想法吗?

这里有几个不同的好选择:

  1. _constraints字段添加到一个模块并强制该模块依赖于另一个自定义模块。

    {'name': 'custom_a', 'depends': ['custom_b']}
    
  2. 创建一个独立的第三个自定义模块,将它们链接在一起。您会看到 Odoo 核心使用 stock_account.

    等模块做了相当多的工作
    {'name': 'custom_link', 'depends': ['custom_a', 'custom_b']}
    
    class Constrains(models.Model):
        _constraints = [(_check, 'My message...', ['my_field'])]