有时,我们的OpenERP用户希望对核心OpenERP模块中的字段进行小的更改.例如,他们希望产品屏幕的Rack,Row和Case字段长度超过16个字符.
我是否可以在不更改声明它的模块的情况下更改现有字段?我宁愿使用我们自己的自定义模块进行更改,而不是编辑product模块本身.
我已经成功了,但我希望其他人知道更干净的方法。
您可以在自定义模块中继承核心模块的类,然后只需声明一个与您要更改的名称相同的新字段。本质上,只需从核心模块复制字段声明,将其粘贴到您的自定义模块中,然后进行所需的更改。例如,我们的product_notes模块将机架、行和箱字段从模块的 16 个扩大到255product个。
_columns = {'loc_rack': fields.char('Rack', size=255),
'loc_row': fields.char('Row', size=255),
'loc_case': fields.char('Case', size=255)}
Run Code Online (Sandbox Code Playgroud)
我不喜欢这个的原因是,现在该字段的所有其他属性都有重复。如果您更改字段长度,然后核心模块更改帮助文本,您仍然会看到旧的帮助文本。我希望在模块加载时有某种方法可以进入并调整父级的字段属性,但我在正确的时间找不到任何钩子。
您可以更轻松地进行的一项更改是字段的默认值。只需在自定义模块中为核心模块的字段声明一个默认值,它将替换原始默认值。例如,我们更改了module中和 的sale_delay默认produce_delay值。product
_defaults = {'sale_delay': lambda *a: 5,
'produce_delay': lambda *a: 0}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3977 次 |
| 最近记录: |