在表单加载odoo 8上自动填充on2many字段

问题描述 投票:0回答:1

我尝试创建一个 type="one2many" 的功能字段并在表单加载时自动填充。我尝试了下面的代码:

代码1:

'flat_members1': fields.function(_get_flat_members, relation="family.info", method=True, type="one2many", multi='flat_fkk'),

def _get_flat_members(self, cr, uid, ids, name, arg, context=None):
    cr.execute("Select * from family_info where flat="+str(flat_id)+"")
    cr_res = cr.dictfetchall()
    res = {}
    for data in self.browse(cr,uid,ids):
        res[data.id] = self.pool.get('family.info').search(cr,uid,[('flat', '=', flat_id)])
    return values

代码2:

    member_ids = []
    for res in cr_res:
         member_ids.append((0,0,{'name':res.get('name'),
                               'flat':res.get('flat'),
    
                               }))
    values.update(family_members1=member_ids)
    return values

在这两种方式中,我都遇到了错误:

    AttributeError: 'list' object has no attribute 'iteritems'

请提出解决方案,谢谢。

one-to-many odoo-8 autofill
1个回答
0
投票

使用 Odoo8 新 API:

flat_members1 = fields.One2many(compute='_get_flat_members',
                             comodel_name='family.info',
                             string='flat_members1',
                             store=True)


@api.one
@api.depends('flat_id')
def _get_flat_members(self):
    member_ids = []

    # get member_ids

    self.flat_members1 = member_ids
© www.soinside.com 2019 - 2024. All rights reserved.