【问题标题】:Accesing oneToMany data from odoo model (odoo 12)从 odoo 模型 (odoo 12) 访问 oneToMany 数据
【发布时间】:2020-02-28 17:46:08
【问题描述】:

我有一个以一对多关系与项目相关的任务列表一个项目有许多任务,阅读official documentation 字段访问应该像迭代列表并按名称访问字段一样简单,这是我到目前为止所做的代码:

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 是任务的 Id,我如何访问任务属性?

注意:该字段是一个选择字段

【问题讨论】:

  • 是的,x 是 id,projet.task 是表名,您可以使用 e.fiels_name 访问所有字段,就像您对状态所做的那样。尝试打印 e.name
  • 我只是得到 True 或 False 这不是属性的类型,它是一个选择
  • 这是不寻常的,你确定你正在使用 print(e.status) 并尝试登录信息 e._status

标签: odoo odoo-12


【解决方案1】:

试试这样的:

def _roles_assigned(self):
    for tasks in self.task_ids:
        logging.info(tasks.status)

【讨论】:

    【解决方案2】:

    由于该字段是一个选择,我必须访问字典

    @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
    

    【讨论】:

      猜你喜欢
      • 2021-06-01
      • 2023-01-03
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 2019-03-21
      • 2020-11-04
      相关资源
      最近更新 更多