跳至内容
菜单
此问题已终结
4 回复
12963 查看

i have a selection field in my model i want to get string value from that selection field. suppose user select 'A' i want to get 'Apple'.

select_val = fields.Selection([
                        ('A', 'Apple'),
                        ('B', 'Ball')], ... etc


形象
丢弃

selection_value = dict(self._fields['your_selection_field']._description_selection(self.env))[self.your_selection_field]

最佳答案

Hi,

If you want to get the string from selection field follow the steps below

python :-

selection_field = fields.Selection([("1", "One"),("2", "Two"),("3","Three"),],string="Selection")

string_value = dict(self._fields['selection_field'].selection).get(self.selection_field))

In qweb:-

<t t-esc="dict(docs.fields_get(allfields=['selection_field'])['selection_field']['selection'])[docs.selection_field]"/>


Regards

形象
丢弃

Proper way (at least on v16) seems to be this:

self._fields['state'].convert_to_export(self.state, self)

It handles translation better

最佳答案

Hello,
You can create a compute char field [selection_str = fields.Char(compute="comp_str")]

def comp_str (self):        

    self. selection_str = dict(self._fields['select_val']._description_selection(self.env)).get(self.celect_val)

形象
丢弃
最佳答案

Approach #1:
make a global dictionary for converting like:

SELECTION = {'A': 'Apple', ...}

and use SELECTION[obj.select_var] wherever you need the string.

Approach 2#:

selected_string = fields.Char(compute="_compute_string", store=False)

def _compute_string(self):

    for rec in self:

        rec.selected_string = dict(self._fields.get('select_var').selection).get(rec.select_var)


形象
丢弃
最佳答案

Hello Vinoth N,

Please find below code it may help you to resolve this issue,


print dict(self._fields['select_val'].selection).get(self.select_val)

Thanks & Regards,
Email: odoo@aktivsoftware.com
Skype: kalpeshmaheshwari

形象
丢弃
相关帖文 回复 查看 活动
0
8月 23
1269
1
9月 25
2032
1
6月 25
2082
3
7月 25
3668
1
5月 25
1792