odoo - 如何在openerp的函数中使用many2one字段
问题描述
如何在函数中使用 many2one 字段?
这是我的代码:
def _get_unit(self, cr, uid, ids, fields,arg, context=None):
res = {}
list_data = []
for record in self.browse(cr, uid, ids,unit):
list_data.append(record[unit.id])
return super(learning_course, self)._get_unit(cr, uid, ids, context=context)
_columns = {
'unit': fields.many2one('hr.department', 'unit'),
'department': fields.function(_get_unit, string='department' , store=True ,type='many2one' ,relation='hr.department'),
}
def onchange_user(self, cr, uid, ids, user_id, context=None):
unit = False
if user_id:
unit = self.pool.get('res.users').browse(cr, uid, user_id, context=context).context_department_id.id
return {'value': {'unit' : unit }}
return {'value': {} }
但我收到此错误:
用于 self.browse(cr, uid, ids,unit) 中的记录:AttributeError: 'browse_record_list' 对象没有属性 'id'
我应该怎么办?
解决方案
def _get_unit(self, cr, uid, ids, prop, unknow_none, context=None):
res = {}
for record in self.browse(cr, uid, ids):
res [record.id] = record.user_id.context_department_id.id
return res
_columns = {
'user_id': fields.many2one('res.users', 'user', readonly=True),
'unit_id': fields.function(_get_unit, string='dep' , store=True ,type='many2one',relation='hr.department'),
}
推荐阅读
- salesforce - 创建一个转换列表的方法
到地图 以 SObjectField 作为方法参数,有什么建议吗? - next.js - 基于主机的路由
- c++ - c++中使用v4l2抓图,讲解过程
- python - json.decoder.JSONDecodeError:期望值:第 1 行第 1 列(字符 0)区块链
- java - ASM如何检查方法是否被特定类覆盖
- python - 如果 csv 文件具有相同的列标题,则合并它们,如果不拆分
- git - 为什么没有上游的 git push 的建议修复包括确切的命令,但 git pull 不包括相同的命令?
- javascript - compose 函数如何处理多个参数?
- python - 从 Python 中的 SQL 数据库绘图
- google-bigquery - BigQuery:创建具有指定范围日期的数组