0
爲了記錄的目的,我需要將model's save()
中的當前用戶信息覆蓋。如何從Django模型定義訪問用戶信息?
我正在寫一個日誌條目,當一個即時保存。在那個記錄中我也需要有當前用戶。保存可以在常規視圖中進行,我可以訪問請求,但在管理會話期間無法訪問請求。
我錯過了什麼嗎?
爲了記錄的目的,我需要將model's save()
中的當前用戶信息覆蓋。如何從Django模型定義訪問用戶信息?
我正在寫一個日誌條目,當一個即時保存。在那個記錄中我也需要有當前用戶。保存可以在常規視圖中進行,我可以訪問請求,但在管理會話期間無法訪問請求。
我錯過了什麼嗎?
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)
Downvote,真的嗎? ¯\ _(ツ)_ /¯ –
這是一個有趣的簡單而有用的圖書館。非常感謝指針... –