name_get
简介
记录集对外显示样式调整的方法
源码
@api.multi
def name_get(self):
""" name_get() -> [(id, name), ...]
Returns a textual representation for the records in ``self``.
By default this is the value of the ``display_name`` field.
:return: list of pairs ``(id, text_repr)`` for each records
:rtype: list(tuple)
"""
result = []
name = self._rec_name
if name in self._fields:
convert = self._fields[name].convert_to_display_name
for record in self:
result.append((record.id, convert(record[name], record)))
else:
for record in self:
result.append((record.id, "%s,%s" % (record._name, record.id)))
return result
分析
- 首先被搜索的模型必须有name字段或者维护_rec_name属性。
- 通过convert_to_display_name方法将当前结果记录集转换成可显示的样式,比如界面M2O下拉框的显示样式,系统将返回 ((id1,“display_stype_name1”),(id2,“display_stype_name2”)) 形式。
- 如果没有模型没有维护name字段和_rec_name属性,系统将返回 ((id1,“model,id1”),(id2,“model,id2”)) 形式。