تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
5 الردود
25338 أدوات العرض

I have a selection field, and I want to fetch list of all keys and values using ORM method. How can I achieve it.


    _name = "calling_devices"

    device_type = fields.Selection([('desk','Desk'),('mobile','Mobile'),('home','Home'),('others','Others')])


Desired Output using ORM methods or alternate way:

Key_Value_pair = {'desk': 'Desk', ' mobile ' : ' Mobile ', ' home ': ' Home ', ' others ': ' Others '}

How can we achieve it?


الصورة الرمزية
إهمال
أفضل إجابة

you can use this.

dict(self._fields['your_field'].selection).get(self.your_field)

الصورة الرمزية
إهمال
أفضل إجابة

Hi Parag,

You can get your selection by:

self._fields['your_selection_field'].selection

In your case:

var = self._fields['device_type'].selection

output: [('desk','Desk'),('mobile','Mobile'),('home','Home'),('others','Others')]

Then convert this into Dictionary.

dict(var)

Final Output: {'desk': 'Desk', ' mobile ' : ' Mobile ', ' home ': ' Home ', ' others ': ' Others '}


Hope it helps!

Regards,

Mayank Gosai

الصورة الرمزية
إهمال

I didn't know about this. Thank you for your information.

Thank you, Mayank sir +1

أفضل إجابة

 have followed Mayank Gosai's instructions, this is a good way.

var = self._fields ['device_type']. selection

dict_var = dict (var)

And now I can know the current value of the device_type field of the current record

record_device_type = dict_var [self.att_type_dwg]

such as if self.device_type = 'home' then record_device_type = 'Home'.
:)

Thanks Mayank Gosai

الصورة الرمزية
إهمال
أفضل إجابة
from odoo import api, models, _


def get_selection_label(self, object, field_name, field_value):
  return _(dict(self.env[object].fields_get(allfields=[field_name])[field_name]['selection'])[field_value])


class ResPartner(models.Model):
  _inherit = 'res.partner'

    def my_method(self):
        state_value_translated = get_selection_label(self, 'res.partner', 'state', self.state)
الصورة الرمزية
إهمال
أفضل إجابة
def _get_key_value_list(self):
    Key_Value_pair={}
    for elmt in self.device_type:
        Key_Value_pair.update({elmt[0]: elmt[1]})
    return Key_Value_pair
الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
0
فبراير 18
4805
2
سبتمبر 23
12214
3
يونيو 19
6387
1
يوليو 17
4803
2
يوليو 25
4207