【发布时间】:2013-08-05 17:22:15
【问题描述】:
您好,我正在开发一个 openerp 模块。我想动态创建一个字段。我想从用户那里取一个字段的名称,然后为它创建一个字段。如何做到这一点?我可以使用 fields.function 来返回名称、字符类型吗?请帮忙
【问题讨论】:
您好,我正在开发一个 openerp 模块。我想动态创建一个字段。我想从用户那里取一个字段的名称,然后为它创建一个字段。如何做到这一点?我可以使用 fields.function 来返回名称、字符类型吗?请帮忙
【问题讨论】:
您的意思是要在表单/树视图或模型中使用动态字段?
如果它在视图中,则覆盖 fields_view_get,调用 super,然后处理返回的 XML 以获取要在字段中添加或操作 XML 的表单类型。 ElementTree是你的朋友。
如果您正在谈论拥有一个动态数据库字段,我认为您无法做到,OpenERP 会在第一次访问该数据库时为每个数据库创建一个注册表,并且该过程在那时执行数据库重构。注册表包含您通过 self.pool.get 获得的单例模型实例...
要实现这一点,您需要创建某种通用字段,例如 field1,然后在 fields_view_get 中更改字符串属性以赋予其动态标签。
实际上,我想到了一个 C 计划。您可以创建一个属性类型的表,使用功能字段来读取当前用户的值并覆盖fields_view_get 来执行表单。
【讨论】:
您可以在 class self.pool.get('ir.model.fields') 的帮助下动态创建字段 使用创建函数。
【讨论】: