2015-11-19 80 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調用的更多信息,但似乎我被迫使用它。 –

相關問題