【问题标题】:Auto fill on2many field on form load odoo 8在表单加载odoo 8上自动填充on2many字段
【发布时间】:2016-12-16 08:38:04
【问题描述】:

我尝试创建一个 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】:

    使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多