2016-07-21 53 views
0

.py文件: ...。要我記錄誰通過Odoo修改某個字段的用戶名?

namex = fields.Text()

moifier = fields.Many2one( 'res.users',字符串=」改性劑」)

...

當一些用戶修改‘namex’,他/她的名字應該自動記錄在字段「修飾符」中;我應該做什麼代碼?我嘗試「onchange/depends」,但失敗;也許修飾符可能是一個「文本字段/字段」?

除了

,我將設置「access_rule」設置用戶只看到他/她自己的組由成員創建的記錄?

回答

0

Odoo已經有你。每種模式都有這些字段,並且會自動創建並在每次創建時更新,或寫:

  • CREATE_DATE(日期時間):創建記錄時
  • create_uid(many2one):誰創造了這個記錄用戶
  • write_date(日期時間):最後一次記錄更新
  • write_uid(many2one):最後一個用戶更新此記錄的

進入設置>技術>數據庫結構>模型的更多細節。

+0

謝謝你的信息;我從這個答覆中學到了很多東西。 – vx2008

0

雖然Odoo會爲您保留修改記錄的最後一位用戶的軌跡,但不保留每個字段的修飾符。在很多情況下,我可以看到這種功能的興趣。

爲了做到這一點對於特定的模型中的一個可能性是重新定義該模型的write方法。在你的.py文件,你可能需要添加這樣的事情:

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

另一種方法是,在一個更靈活的方式是使用@onchange裝飾:

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

您可能還需要看看@depends裝飾器。

+0

感謝您的信息。 – vx2008

相關問題