odoo 8,模型权限问题
odoo 8, Issue with permissions over models
我正在尝试读取公司数据:
for company in self.pool('res.company').browse(cr, uid, uid):
company.vat <=== code breaks here
如果我使用管理员 (uid 1) 帐户,我会看到 company.vat。但是,如果我使用任何其他帐户(具有 res.company 的权限),我会收到一条消息:"One of the documents you are trying to access has been deleted..."
这是权限问题还是某种编码错误?请注意,如果我硬编码 1 而不是 uid 作为浏览函数的参数,它就可以工作。
谢谢
试试这个
from openerp import SUPERUSER_ID
self.pool('res.company').browse(cr, SUPERUSER_ID, uid)
- 首先如果是你的odoo中只有一个公司的情况,默认情况下你创建时会创建id为“1”的公司。
- 您可以使用 "Administrator" 访问该记录,因为管理员用户的 ID 也是“1”。所以这导致 browse(cr, uid, uid) 被 (cr, 1, 1) 取代。由于管理员的uid = "1",只有公司记录的id也是"1"。
3.When 您正在使用其他用户登录,uid 不会是“1”。因此,在那种情况下,您无法使用 uid 读取该公司,因为 ('uid != 1','company_id = 1') 不会 match.In 在这种情况下,您可能会收到类似 "One of the documents you are trying to access has been deleted".[=15 的错误=]
4.So 你做一件事,首先执行搜索操作,这将为你提供 company_ids 然后通过读取公司重复 for 循环。
company_pool = self.pool.get("res.company")
company_ids = company_pool.search(cr, uid, [])
for company in company_pool.browse(cr, uid, company_ids):
company.vat
我正在尝试读取公司数据:
for company in self.pool('res.company').browse(cr, uid, uid):
company.vat <=== code breaks here
如果我使用管理员 (uid 1) 帐户,我会看到 company.vat。但是,如果我使用任何其他帐户(具有 res.company 的权限),我会收到一条消息:"One of the documents you are trying to access has been deleted..."
这是权限问题还是某种编码错误?请注意,如果我硬编码 1 而不是 uid 作为浏览函数的参数,它就可以工作。
谢谢
试试这个
from openerp import SUPERUSER_ID
self.pool('res.company').browse(cr, SUPERUSER_ID, uid)
- 首先如果是你的odoo中只有一个公司的情况,默认情况下你创建时会创建id为“1”的公司。
- 您可以使用 "Administrator" 访问该记录,因为管理员用户的 ID 也是“1”。所以这导致 browse(cr, uid, uid) 被 (cr, 1, 1) 取代。由于管理员的uid = "1",只有公司记录的id也是"1"。
3.When 您正在使用其他用户登录,uid 不会是“1”。因此,在那种情况下,您无法使用 uid 读取该公司,因为 ('uid != 1','company_id = 1') 不会 match.In 在这种情况下,您可能会收到类似 "One of the documents you are trying to access has been deleted".[=15 的错误=] 4.So 你做一件事,首先执行搜索操作,这将为你提供 company_ids 然后通过读取公司重复 for 循环。
company_pool = self.pool.get("res.company") company_ids = company_pool.search(cr, uid, []) for company in company_pool.browse(cr, uid, company_ids): company.vat