2

目標: 購入モジュールへのアクセス権を持つすべてのユーザーにすべての製品を表示します。ただし、上記のルールに加えて、同じ製品を作成したユーザーへの参照フィールドに値「secfab」を持つ製品のみが表示されます。

問題: アクセス レコードを使用しようとしましたが、それを作成するロジックが弱く、助けが必要です。

ケース 1: [('default_code','!=','secfab'),('created_id','=',user.id)]

これをコーディングすると、1 つのレコードのみが取得され、他のレコードは表示されません。

ケース 2: ['|',('default_code','!=','secfab'),('created_id','=',user.id)]

これをコーディングすると、すべてのレコードのみが作成され、必要なプライバシーを実現できなくなります。

どんな助けでも大歓迎です。

4

1 に答える 1

3

作成者でフィルタリングするための句のスペルが間違っているように見えることを除いて、2番目のケースは正しいようです。存在しないフィールドの条件をcreated_id検証できないため、このタイプミスにより、ルールがすべてのレコードに一致する可能性があります。そうではありませんか:

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

これは、「コードに関係なく、ユーザーが作成したすべての製品に加えて、コードを持たないすべての製品を表示secfabする」に変換され、あなたが望むことをするようです?

create_uid_log_accessは、デフォルトである に設定されているすべてのモデルにシステムによって自動的に追加される 4 つのフィールドの 1 つTrueです。これについては、OpenERP 技術メモおよび特殊分野のドキュメントで説明されています。

于 2012-07-05T09:27:42.750 に答える