Доступ к данным oneToMany из модели odoo (odoo 12) - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть список задач, связанных с проектом в отношении «один ко многим». У одного проекта есть много задач, читая официальную документацию , доступ к полю должен быть таким же простым, как итерация по списку, и получить доступ к полю по имени, это код, который я сделал до сих пор:

def _roles_assigned(self):
    for rec in self:
        total = len(rec.task_ids)
        for e in rec.tasks
            logging.info(e.status) #<-- this should print status 

Я печатаю результат и получаю 'project.task (X,)', где я предполагаю, что X - это идентификатор задачи Как я могу получить доступ к свойствам задачи?

Примечание: поле является полем выбора

Ответы [ 2 ]

1 голос
/ 02 марта 2020

попробуйте что-то вроде этого:

def _roles_assigned(self):
    for tasks in self.task_ids:
        logging.info(tasks.status)
0 голосов
/ 02 марта 2020

Поскольку поле является выборкой, я должен был получить доступ к словарю

@api.multi
@api.depends('task_ids')
def _roles_assigned(self):
    for rec in self:
        total = len(rec.tasks)
        assigned = 0
        for e in rec.tasks:
            selected = dict(e._fields['status'].selection).get(e.status) #<-- getting selected value from a selection field
...