如何在字典中为default_get方法Odoo11

时间:2018-10-26 07:05:08

标签: list dictionary odoo odoo-10

我对一个2个字段使用default_get方法,我可以看到列表中的字段,但是当我想通过show空白字典中的super方法在字典中传递这些字段时。那么,如何获得呢?

我的python代码在这里:

@api.model
def default_get(self, fields):
    print("FIELDS", fields)
    rec = super(CrmContactLine, self).default_get(fields)
    print("REC", rec)
    context = dict(self._context or {})
    partner = self.env['res.partner'].browse(context['partner_id'])
    fields['partner_m2m'] = partner.child_ids
    return rec

获得的关于“字段”显示列表值的结果,但“ REC”字典为空

FIELDS ['名称','电子邮件','名称','linkedln_profile','标识符','approached_status','approach_date','email_status','follow_up_date','partner_m2m']

REC {}

谢谢。

2 个答案:

答案 0 :(得分:0)

如果对方法default_get的超级调用返回空dict,那是因为将没有为该模型定义默认值,这是有效的结果。您需要先输入自己的值,然后再返回结果dict rec,而不是在字段列表中。这应该对您有用

@api.model
def default_get(self, fields):
    rec = super(CrmContactLine, self).default_get(fields)
    context = dict(self._context or {})
    partner = self.env['res.partner'].browse(context['partner_id'])
    rec['partner_m2m'] = partner.child_ids
    return rec

答案 1 :(得分:0)

我已经解决了这个问题。

@api.model
def default_get(self, fields):
    rec = super(CrmContactLine, self).default_get(fields)
    context = dict(self._context or {})
    partner = self.env['res.partner'].browse(context['partner_id'])
    rec['partner_m2m'] = [(6, 0, partner.child_ids.ids)]  # if your field type is many2many
    return rec