我在订阅.py上课。它为用户提供了selection和many21字段。我在openerpdocumentation和其他模块中也找到了,但我从未找到任何细节或其他示例
这是它的观点
这是与该字段相关的代码
'doc_source': fields.reference('Source Document', required=True, selection=_get_document_types, size=128),
这是选择部件功能代码
^{pr2}$我需要知道,我们能自己做吗字段.引用键入字段。?在
另一个组合,而不是型号,名称。。?在
在OpenERP框架中,
fields.reference
字段是一个伪-many2one
关系,可以针对多个模型。也就是说,除了外键之外,它还包含目标模型的名称,因此每个值都可以属于不同的表。用户界面首先显示一个下拉列表,用户可以在其中选择目标文档模型,然后是一个many2one
小部件,用户可以从该模型中选择特定的文档。 当然,您可以在自己的模块中使用它,但它总是以这种方式运行。在这通常用于附加各种文档(类似于附件,只是目标是另一个记录而不是文件)。它还用于一些需要附加到不同类型记录的内部OpenERP模型中,例如可能属于任何记录的属性(
fields.property
值)。在fields.reference
constructor有3个主要参数:其中} 声明中的格式相同。选择值的键必须是模型名(例如
selection
包含可从中选择值的文档模型列表(例如合作伙伴、产品等),其格式与^{'res.partner'
)。在从openerp7.0开始,
size
参数应该是None
,除非您想特别限制存储值的数据库字段的大小,这可能是个坏主意。技术上,fields.reference
值以model.name,id
的形式存储为文本。您不能在常规的SQL联接中使用这些字段,因此在许多情况下它们的行为不像many2one
字段。在主API调用
read()
一个非空的引用值时,您必须将其拆分到','
上,以标识目标模型和目标IDwrite()
一个非空的引用值时,您需要传递'model.name,id'
字符串。在search()
寻找非空的引用值时,您需要搜索'model.name,id'
字符串(例如在搜索域中)many2one
字段的关系-这是规则的主要例外;-)相关问题 更多 >
编程相关推荐