2016-02-13 69 views
0

爲了記錄的目的,我需要將model's save()中的當前用戶信息覆蓋。如何從Django模型定義訪問用戶信息?

我正在寫一個日誌條目,當一個即時保存。在那個記錄中我也需要有當前用戶。保存可以在常規視圖中進行,我可以訪問請求,但在管理會話期間無法訪問請求。

我錯過了什麼嗎?

回答

0

django-cuser來救援!該庫添加了可以在視圖中調用的中間件,模型方法等來獲取當前用戶。它有更多的功能,但實質上你可以在任何模型,modelAdmin等方法中訪問當前用戶。

有一些方法可以訪問用戶in modelAdmin instances,但不是在視圖和自定義管理實例中都建立方法,而是使用保存方法。

一旦成立,它可以被稱爲是這樣的:

from cuser.middleware import CuserMiddleware 

class SomeModel(models.Model): 
    def save(self, *args, **kwargs): 
     user = CuserMiddleware.get_user() 
     # you can now access any attributes of the current user 
     super(SomeModel,self).save(*args, **kwargs) 
+1

Downvote,真的嗎? ¯\ _(ツ)_ /¯ –

+0

這是一個有趣的簡單而有用的圖書館。非常感謝指針... –