在 OpenERP7 中如何使数据库字段具有默认值?

How can I make a database field have a default value in OpenERP7?

假设我有这个模型:

class my_model(orm.Model):
    _name = 'my.model'
    _columns = {
        'my_field': fields.selection([('a', 'A'), ('b', 'B'), ('c', 'C')], string="My Field", required=True, ...)
    }

    _defaults = {
        'my_field': 'a'
    }

但是当创建 table 时,该列没有默认值(这意味着:如果我执行 insert into my_model(id) values (1),值 'a' 将不会填充到字段 my_field,但当 my_field 不为 null 时会出现 null 值的错误。

如何在不通过 sql 手动添加设置的情况下使我的字段在 SQL 中具有默认设置?

如果您使用sql查询添加记录,则无法设置默认值。

但您可以通过在 init 方法或 单独操作 .[=12 中执行另一个查询来更改 table 结构=]

查询:

ALTER TABLE my_model
   ALTER COLUMN my_field SET DEFAULT 'a';

现在您获得 my_field 表单 sql 命令的默认值

更多信息PostgreSQL Default Values