Openerp 属性错误:';非类型';对象没有属性';获取默认公司';

Openerp 属性错误:';非类型';对象没有属性';获取默认公司';,openerp,openerp-7,openerp-8,Openerp,Openerp 7,Openerp 8,我使用了上面的代码,一切正常,但我不知道在哪里以及如何调用我的函数get\u default\u company()。当我调用这个方法时,它是给定的 class Sale(osv.osv): _name = 'sale' _columns = { 'name': fields.char('Company Name', size=128) } def get_default_company(self, cr, uid, context=None): company_id = s

我使用了上面的代码,一切正常,但我不知道在哪里以及如何调用我的函数
get\u default\u company()
。当我调用这个方法时,它是给定的

class Sale(osv.osv):
_name = 'sale'

_columns = {
    'name': fields.char('Company Name', size=128)
}

def get_default_company(self, cr, uid, context=None):
    company_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.id,
    return company_id
Sale()
什么是AttributeError:“非类型”? NoneType表示任何对象的函数或实例不与您一起工作,您实际上得到了None

cr and uid invalids 

您是Sale()这就是发生此错误的原因,您需要调用
get\u default\u company()
函数,并调用此函数才能实现此方法。否则会给您错误(获取默认值\u公司功能不存在


您想创建函数字段是的,您可以创建检查此

只需添加销售类即可。OpenERP将在创建新对象时自动调用它

cr and uid invalids 
class Sale(osv.osv): 
    _name = 'sale'

    def get_default_company(self, cr, uid, context=None):
        company_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.id,
        return company_id

    get_default_company()             // Call this function

    _columns = {
         'name': fields.char('Company Name', size=128)
    }
比如看。
您可以在OpenERP模块代码中找到更多详细信息。

看起来您需要为公司设置默认值。为此,您需要使用
\u defaults
model属性,该属性为您的字段设置默认值。像

_defaults = {
        'company_id': get_default_company,
}
def get_company(self, cr, uid, context=None):
    user_rec = self.pool.get('res.users').browse(cr, uid, uid, context)
    return user_rec.company_id.id
在此方法之前,您需要定义get_company方法,该方法应返回公司id,如

_defaults = {
    'company_id': get_company
}
要实现所有这些,您需要在
\u列中设置一个字段。因此,您还需要将
公司id
添加为
manyOne
字段。像

_defaults = {
        'company_id': get_default_company,
}
def get_company(self, cr, uid, context=None):
    user_rec = self.pool.get('res.users').browse(cr, uid, uid, context)
    return user_rec.company_id.id
改变所有这些,你的模型会像

_columns = {
    'name': fields.char('Company Name', size=128),
    'company_id': fields.many2one('res.company', "Company")
}
希望这有帮助