小编asd*_*232的帖子

如何在 OpenERP 中定义多公司感知模型

我在 OpenERP 中定义了几个自定义对象,它们应该在多公司环境中使用。因此,每个对象定义一个“company_id”字段。这是所有设置和工作正常。只是,用户界面不是很用户友好,因为用户需要明确选择新对象实例应该属于的公司。

company_id 字段的设置方式如下:

...
'company_id' : fields.many2one('res.company', string='Company', selection=compute_company_select, required=True)
...


def compute_company_select(self, cr, uid, context):
    c_proxy = self.pool.get('res.company')

    user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
    search = [('id', 'child_of', user.company_id.id)]
    if uid == SUPERUSER_ID:
        search = [] #superuser can assign any company

    ids = c_proxy.search(cr, uid, search, context=context)
    return [(c.id, c.name) for c in c_proxy.browse(cr, uid, ids, context=context)]
Run Code Online (Sandbox Code Playgroud)

我也可以通过使用“compute_company_select”函数中的搜索域在字段定义中简单地定义域表达式来解决这个问题。除了超级用户无法分配所有公司之外,如果他没有被配置为有权访问所有公司。

我现在想要做的是在创建新记录时用用户公司预先填充 company_id 字段。而这似乎是不可能的。我发现了几种使用静态值或模块 XML 中定义的值预填充字段的可能性。但是似乎没有选项可以使用仅在运行时可用的值,即当前用户记录。

我正在使用 OpenERP 6.1。

python forms default-value openerp

5
推荐指数
1
解决办法
3985
查看次数

标签 统计

default-value ×1

forms ×1

openerp ×1

python ×1