Openerp Odoo 10选择字段值

Openerp Odoo 10选择字段值,openerp,field,odoo-10,getvalue,Openerp,Field,Odoo 10,Getvalue,如何获取odoo 10中的选择字段值 def计算默认值(self): 返回self.get_值(“字段”) 我试过这个 def计算默认值(self): 返回dict(self.\u字段['field'].selection).get(self.type) 我也试过这个,但不起作用。 请帮帮我,我找不到解决办法 谢谢。我不完全明白这个问题,但让我试着回答。为什么不将选择定义为方法并将其用于两种情况: 从日期时间导入日期时间 从odoo导入模型、字段 类MyModel(models.Model)

如何获取odoo 10中的选择字段值

def计算默认值(self):
返回self.get_值(“字段”)
我试过这个

def计算默认值(self):
返回dict(self.\u字段['field'].selection).get(self.type)
我也试过这个,但不起作用。 请帮帮我,我找不到解决办法


谢谢。

我不完全明白这个问题,但让我试着回答。为什么不将选择定义为方法并将其用于两种情况:

从日期时间导入日期时间
从odoo导入模型、字段
类MyModel(models.Model):
_name='my.model'
def月_选择(自):
返回[(1,'Month1'),(2,'Month2')]
def计算默认值(自身):
selection=self.month\u selection()
#在这里你想干什么就干什么
月份=字段。选择(
selection=month\u selection,string='month',
默认值=datetime.now().month,必需值=True)

您可以通过以下方式执行此操作:

self._fields['your_field']._desription_selection(self.env)
这将返回对的选择列表(值、标签)

如果您只需要可能的值,可以使用
get\u values
方法

self._fields['your_field'].get_values(self.env)
但这不是一种常见的方式。大多数情况下,人们会以不同的方式定义选择,然后使用这些定义。例如,我通常使用这些类

class BaseSelectionType(object):
    """ Base abstract class """

    values = None

    @classmethod
    def get_selection(cls):
        return [(x, cls.values[x]) for x in sorted(cls.values)]

    @classmethod
    def get_value(cls, _id):
        return cls.values.get(_id, False)


class StateType(BaseSelectionType):
    """ Your selection """
    NEW = 1
    IN_PROGRESS = 2
    FINISHED = 3

    values = {
        NEW: 'New',
        IN_PROGRESS: 'In Progress',
        FINISHED: 'Finished'
    }
您可以在任何地方使用这个类,只需导入它

state = fields.Selection(StateType.get_selection(), 'State')
在代码中使用它们真的很方便。例如,如果要在特定状态下执行某些操作:

if self.state == StateType.NEW:
    # do your code ...

你能提供更多的信息或代码吗?我一点也不懂这个问题。月份=字段。选择([(1,'Ocak'),(2,'ubat'),(3,'Mart'),(4,'Nisan'),(5,'Mayıs'),(6,'Haziran'),(7,'Temmuz'),(8,'Ağustos'),(9,'Eyl l'),(10,'Ekim'),(11,'Kasım'),(12,'Aralık')],string='Ay',default=datetime.now().month,required=“True”)这是我的选择字段,我想获取此选择字段值以用于另一个字段报告\u date=fields.Char(compute='compute\u selection\u value')。但是我不能得到选择字段的值。谢谢你的回答,但这不是我想要的。当我选择“Month1”时,如何将此选择发送到其他字段。例如show_month=fields.Char(),我想发送'Month1'来显示_month。有没有像month.value或month.selection这样的方法来获取所选项目?非常感谢,它很好用。我真的很感激。祝你度过愉快的一天。刚刚注意到,你希望获得当前选定的值。只需使用self.your_字段