2015-11-19 68 views
0

假设我有这样的模式:如何让数据库字段在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' 
    } 

但是,当创建表,列有没有默认值(这意味着:如果我执行insert into my_model(id) values (1),值“A”将不会在现场my_field填充,但在my_field空值不为空时会产生一个错误)。

我该如何做 - 无需手动添加设置通过SQL我的领域有SQL中的DEFAULT设置?

回答

1

如果您是通过使用sql查询添加记录,那么这是不可能设置默认值。

但是可以通过执行其他查询中初始化方法或单独行动执行改变的表结构。

查询:

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

,现在你得到my_field形式的SQL命令

默认值PostgreSQL Default Values

+0

我想避免明确的SQL调用的更多信息,但似乎我被迫使用它。 –

相关问题