0

嗨,我正在开发一个 openerp 模块。我想动态创建一个字段。我想从用户那里取一个字段的名称,然后为它创建一个字段。如何做到这一点?我可以使用 fields.function 来返回名称、字符类型吗?请帮忙

4

2 回答 2

2

你的意思是你想要在表单/树视图或模型中的动态字段?

如果它在视图中,则覆盖fields_view_get,调用 super,然后处理返回的 XML 以获取要在字段中添加或操作 XML 的表单类型。 ElementTree是你的朋友吗?

如果您正在谈论拥有一个动态数据库字段,我认为您不能,并且 OpenERP 在第一次访问该数据库时为每个数据库创建一个注册表,并且该过程在那时执行数据库重构。注册表包含您使用 self.pool.get 获得的单例模型实例...

要实现这一点,您需要创建某种通用字段field1,然后fields_view_get更改字符串属性以为其提供动态标签。

实际上,我想到了一个计划 C。您可以创建表的属性类型,使用功能字段来读取当前用户的值并覆盖fields_view_get以执行表单。

于 2013-08-06T03:39:31.373 回答
0

您可以借助类 self.pool.get('ir.model.fields') 使用创建函数动态创建字段。

于 2013-08-06T04:47:49.913 回答