2012-07-05 72 views
2

目標: 向所有有權購買模塊的用戶顯示所有產品。 但是除了以上規則僅顯示在創建相同產品的用戶的參考字段中具有值'secfab'的產品。根據少數幾個標準限制對產品的訪問

問題: 我嘗試使用訪問記錄,但我的邏輯構建它很薄弱,我需要幫助。

案例1: [( '!=' 'default_code', 'secfab'),( 'created_id', '=',user.id)

如果我這個代碼,然後我只得到沒有顯示一條記錄和其他記錄。

案例2: [ '|',( 'default_code', 'secfab' '=!'),( 'created_id', '=',user.id)

如果我這個代碼那麼我只有所有的記錄和我無法實現我想要的隱私。

任何幫助將不勝感激。

回答

3

你的第二種情況似乎是正確的,除了對創建者進行過濾的子句看起來拼寫錯誤。此錯字可能導致規則匹配所有記錄,因爲無法驗證不存在字段created_id上的條件。它不應該是:

['|', ('default_code', '!=', 'secfab'), ('create_uid', '=', user.id)] 

轉換爲「表明沒有secfab作爲代碼的所有產品,再加上所有的產品,用戶創建的,不管他們的代碼」,並似乎做你想要什麼?

create_uid是系統自動添加到_log_access設置爲True(默認設置)的所有型號之一。這在OpenERP technical mementospecial fields documentation中有解釋。

+0

@ododny它的工作!謝謝 –

+0

上面的解決方案有一個小問題,使其他產品沒有列出,所以這個解決方案工作['|','|',('default_code','=',False),('default_code','!=' 'secfab'),( 'create_uid', '=',user.id)] –