2016-07-21 2 views
0

.pyファイル: ...。Odooが特定のフィールドを変更したユーザー名を記録しますか?

namex = fields.Text()

moifier = fields.Many2one( 'res.users'、文字列=」修飾子」)

...

一部のユーザーは、 『namex』を変更すると、彼/彼女の名前はフィールド "修飾語"に自動的に記録されるべきです。私はどのようなコードを作るべきですか?私は "onchange/depends"を試みますが失敗しました。多分、修飾子は "text field/char field"でしょうか?

さらに、ユーザーに自分のグループのメンバーが作成したレコードを表示するように「access_rule」を設定する必要がありますか?

答えて

0

すでにOdooにはそれがあります。

  • CREATE_DATE(日時):全てのモデルが、それらを自動的に作成し、作成するたびに更新されるフィールド、または書き込みを持つレコードが
  • create_uid(many2one)作成されたとき:このレコードを作成したユーザーを
  • write_date(日時):最後のユーザーが、このレコード

ゴー設定]>技術>データベース構造を更新>詳細は、モデル:前回の記録は

  • write_uid(many2one)が更新されます。

  • +0

    ありがとうございます。私はこの返事から多くを学んだ。 – vx2008

    0

    Odooはレコードを変更した最後のユーザーのトラックを保存しますが、フィールドあたりの修飾子は保持されません。私はそのような機能の関心を多くの場合見ることができます。

    これを行うには、このモデルのwriteメソッドを再定義する必要があります。より柔軟な方法で@onchangeデコレータを使用することを行うには

    @api.model 
    def write(self): 
        if self.namex in values: 
         values.update({'modifier': uid}) 
        super().write(cr, uid, ids, values, context) 
    

    別の方法:

    @onchange('your_sensible_field_name'): 
    def set_modifier(self): 
        self.modifer = self.env.user 
    

    あなたはまたたいこと、あなたの.pyファイルでは、このような何かを追加することもできます@dependsデコレータを見てください。

    +0

    ありがとうございます。 – vx2008

    関連する問題