2017-07-17 97 views
3

我正試圖爲給定類別的用戶提供訪問權限。如何檢查字段'是否包含'Odoo中的值

<record id="rule_cost_centre_viewer" model="ir.rule"> 
     <field name="name">Access for the records for a cost_centre's viewer</field> 
     <field name="model_id" ref="model_example_module"/> 
     <field name="domain_force">[('user_id', 'in', category.viewers.ids)]</field> 
     <field name="groups" eval="[(4,ref('group_example_module_user'))]"/> 
    </record> 

的嘗試沒有成功,我得到:

ValueError: <type 'exceptions.NameError'>: "name 'category' is not defined" while u"[('user_id', 'in', category.viewers.ids)]" 

爲了清楚起見:

class Example(models.Model): 
    _name = 'example.module' 
    category = fields.Many2one('example.category', 'Category') 

class Category(models.Model): 
    _name = 'example.category' 
    name = fields.Char('Category') 
    viewers = fields.Many2many('res.users', 'example_category_rel', 'user_id', 'viewer_id', 'Viewers') 

有什麼問題嗎? ?

也許有檢查的可能性..

<field name="domain_force">[('category.viewers.ids', 'contains', user.id)]</field> 

因爲其他方式不工作..

回答

3

它應該是:

<field name="domain_force">[('category.viewers', '=', user.id)]</field> 

也許這個解決方案是一個有點尷尬,但它的工作。類似的問題回答了here

並嘗試留在Odoo命名領域的指導方針:category_id,viewer_ids等。

+0

確實是這樣的。謝謝您的幫助! – tidylobster

+0

關於命名字段,是不是那些category_id,viewer_ids適用於openerp <= 7.0版本? – tidylobster

+0

它在[Odoo指南](https://www.odoo.com/documentation/10.0/reference/guidelines.html#symbols-and-conventions) – CZoellner

相關問題