Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 6980|回复: 2
打印 上一主题 下一主题

怎么在 domain 中使用函数字段

  [复制链接]

1

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
跳转到指定楼层
楼主
发表于 2015-9-28 14:53:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 非常感觉 于 2015-9-28 15:00 编辑

我想实现,只有HR 经理才可以看到这些记录,我已经创建了函数字段:
  1. def list_HRM(self, cr, uid, ids, field_name, arg, context):
  2.          attribute = {}
  3.         hr_managers = self.pool.get('hr.employee').search(cr, uid, ['&', ('department_id.name', '=', 'Human Resources'), ('manager', '=', True)], context=context)
  4.         hr_managers_uid = []
  5.         for record in hr_managers:
  6.             hr_managers_uid.append(self.pool.get('hr.employee').browse(cr, uid, record, context=context).user_id.id)
  7.         record = self.browse(cr, uid, ids)[0]
  8.         attribute[record.id] = str(uid in hr_managers_uid or uid==1)
  9.         return attribute

  10.     _columns={
  11.     'hr_managers_func' : fields.function(list_HRM, type='char', method=True, string='List of HR Managers'),
  12.     'always_true':fields.boolean()
  13.      }
  14.    _defaults={
  15.       'always_true':True
  16.       }
复制代码


In .xml file:
  1. <field name="always_true" invisible="1"/>
  2. <field name="hr_managers_func" invisible="1"/>
复制代码

In Record Rule:
  1. ['&','|',('state','=','hod_depart'),('state','=','hr_review'),('always_true','=',eval(hr_managers_func))]
复制代码


运行的时候报错:

NameError: name 'eval' is not defined
回复

使用道具 举报

1

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
沙发
 楼主| 发表于 2015-9-28 15:01:08 | 只看该作者
坐等大神帮忙。
回复 支持 反对

使用道具 举报

1

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
板凳
发表于 2015-9-29 09:04:28 | 只看该作者
根据我的经验,函数字段 domain 和普通字段 domain 没有区别
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-4-25 10:09 , Processed in 0.013099 second(s), 14 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表