如果记录不属于odoo中的用户,如何使字段只读

时间:2016-03-10 09:28:03

标签: xml odoo-8

在我的模块中,用户可以保存自己的记录并编辑自己的记录。并且还可以查看其他用户的记录。用户无法编辑其他用户的详细信息但可以查看。我想要的是,我想以只读模式打开另一个用户的记录。但是用户自己的记录应该处于正常模式。最重要的是,对于管理员,它应该处于正常模式(可编辑模式)。我怎么能在odoo中做到这一点?

1 个答案:

答案 0 :(得分:0)

这可以通过使用布尔字段来完成。

is_belongs = fields.Boolean('Own record',default=True)

在模型中添加布尔字段。

写一个这样的函数..

def make_readonly(self):
    if self.pool['res.users'].has_group(self._cr, self.env.user.id, 'base.group_manager'): 
        is_belongs = True //This will work if admin is logged in//
    elif self.create_uid == self.env.user:
        is_belongs = True
    elif self.create_uid != self.env.user:
        is_belongs = False

这里create_uid是odoo的保留字段。

  

保留字段   Odoo在所有模型中创建了几个字段。这些字段由系统管理,不应写入。如果有用或必要,可以阅读它们:

此字段为创建记录的用户提供。此字段的值是创建记录的用户。所以当管理员和记录登录的所有者is_belongs的值为True时。对于其他用户,其值将为False

然后在视图中添加过滤器

{'readonly':[('is_belongs','=',False)]}

然后,表单视图将仅为那些不是记录所有者的用户读取,但对于管理员和记录所有者将处于正常模式。