2016-10-18 5 views
1

Мне нужно создать поле выбора, основанное на другом столбце. i означает, что данные поступают из другой таблицы, но на основе текущего значения столбца таблицы. поэтому я создал поле выбора, как показано ниже:odoo 8 поле выбора я всегда пуст

pull_location = fields.Selection(selection='_get_pull_locations',string='Pull Location') 

и функции, как показано ниже:

@api.multi 
def _get_pull_locations(self): 
    data=[] 
    ** Get the values from other table based on current record ** 
    return [('value1', 'String 1'), ('value2', 'String 2')] 

Всегда, когда я отладки я получаю себя как пустой объект класса (stock.test()). сценарий: у меня есть столбец с именем zone в файле stock.test, у меня есть другая таблица под названием stock.location, поэтому для текущей записи я проверяю таблицу Stock.location, где column pull_zone == zone of stock.test и если да добавляет выбор (pull_location) с этими значениями. Но всегда объект пуст. Я пробовал @ api.one, @ api.multi, @ api.model, Ничего не происходит.

Пожалуйста, помогите. Спасибо,

+0

Отметьте принятый ответ https://www.odoo.com/fr_FR/forum/aide-1/question/how-to-create-dynamic-selection-field-fields-selection-99421 – Zety

ответ

1

Заменить код со следующими:

@api.multi 
def _get_pull_locations(self): 
    ** Get the values from other table based on current record ** 
    return [ 
     ('value1', 'String 1'), 
     ('value2', 'String 2') 
    ] 

pull_location = fields.Selection('_get_pull_locations', string='Pull Location') 

После рестарта Odoo и обновить модуль.

+0

Привет, odedra, сам объект все еще пуст. я хочу получить записи в самообъекте – user280960

Смежные вопросы