0

我想将 res_users 类的字段值 'por_sucursal' 存储在 pruebas 的字段 'probando' 中,该值是布尔值,我可以将它存储在 xml 文件中的过滤器中。

class pruebas(osv.Model):
    _name = 'pruebas'
    _description = 'Sucursales de la empresa'  


def dame_usuario2(self, cr, uid, ids, field_names=None, arg=False, context=None):
    if context is None:
        context = {}
    var_pool = self.pool.get('res_users')
    if var_pool:
        ids = var_pool.search(cr, uid, [('id','=',uid)])
        if ids:
            return ids[0].por_sucursal


_columns = {            
        'name': fields.char('prueba', size=50, help="Probando"),
        'probando': fields.function(dame_usuario2, type='boolean', store=True,
                                            readonly = True),
            }
pruebas()
4

2 回答 2

0

功能领域的签名是:

fnct: function to compute the field value (required)

    def fnct(self, cr, uid, ids, field_name, arg, context)
        returns a dictionary { ids→values } with values of type=type

查看方法的返回类型,dictionary { ids→values }. 您需要返回一个字典字典,例如{ids: {'key':'value'}}ie key -> field name

class pruebas(osv.Model):
    _name = 'pruebas'
    _description = 'Sucursales de la empresa'  

    def dame_usuario2(self, cr, uid, ids, field_names=None, arg=False, context=None):
        result = {}
        if context is None:
            context = {}
        var_pool = self.pool.get('res.users')
        for obj in self.browse(cr, uid, ids, context=context):
            value = {}
            user = var_pool.browse(cr, uid, uid, context=context)
            if user:
                value['probando'] = user.por_sucursal
                result[obj.id] = value
        return result

    _columns = {            
            'name': fields.char('prueba', size=50, help="Probando"),
            'probando': fields.function(dame_usuario2, type='boolean', store=True, readonly = True),
                }
pruebas()
于 2015-04-15T08:15:55.793 回答
0

尝试跟随,

class pruebas(osv.Model):
    _name = 'pruebas'
    _description = 'Sucursales de la empresa'  


    def dame_usuario2(self, cr, uid, ids, field_names=None, arg=False, context=None):
        if context is None:
            context = {}
        var_pool = self.pool.get('res.users')
        res = {}
        for obj in self.browse(cr, uid, ids, context=context):
            res[obj.id] = False
            user = var_pool.browse(cr, uid, uid, context=context)
            if user:
                res[obj.id] = user.por_sucursal
        return res

    _columns = {            
            'name': fields.char('prueba', size=50, help="Probando"),
            'probando': fields.function(dame_usuario2, type='boolean', store=True, readonly = True),
                }
pruebas()
于 2015-04-15T04:23:44.340 回答