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")
}
希望这有帮助