Вы можете сделать это следующим образом:
self._fields['your_field']._desription_selection(self.env)
Это вернет список выбора пар (значение, метка).
Если вам просто нужны возможные значения, вы можете использовать метод get_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 ...
person
tidylobster
schedule
21.09.2017