我在一个模型中定义了selection
字段。
type = fields.Selection([('a','A'),('b','B'),('c','C')])
在其中一项功能中,我尝试获取string value
而不是key
。
@api.multi
def testFunc(self):
for res in self:
print'Value',res.type //It prints 'a'.
我需要打印A'。
我该怎么做?
答案 0 :(得分:3)
选择其中一个解决方案:
您可以获得选择列表的最重要的东西,如下所示:
self._fields['type'].selection
所以试试这个:
# convert the list to dictionary
dict(self._fields['type'].selection).get(self.type)
如果您希望以用户语言翻译标签:
# here the label return is translated.
value = dict(self.fields['state']._description_selection(self.evn)).get(self.type)
答案 1 :(得分:0)
您可以使用此方法,它返回字符串值,如果是这种情况,则将其转换为
@api.multi
def testFunc(self):
for res in self:
print'Value', dict(res.fields_get(["type"],['selection'])['type']["selection"]).get(res.type)
答案 2 :(得分:0)
一个可能且简单的解决方案是:
VALUES_TYPE = [('a','A'),('b','B'),('c','C')]
type = fields.Selection(VALUES_TYPE )
dict(VALUES_TYPE )[self.type]