在 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 命令的默认值
假设我有这个模型:
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 命令的默认值