我有許多模型需要引用回創建/更新它們的用戶。通常這隻需要將request.user
傳遞給相關的屬性,但是如果可能的話,我想盡可能自動完成。在Django模型上設置通過身份驗證的用戶
有用於Doctrine(一個PHP ORM)稱爲Blameable擴展持久化模型實例時將設置爲當前已驗證用戶參考,如:
class Post
{
/**
* Will set this to the authenticated User on the first persist($model)
* @ORM\ManyToOne(targetEntity="User", inversedBy="posts")
* @Gedmo\Blameable(on="create")
*/
private $createdBy;
/**
* Sets this to the authenticated User on the first and subsequent persists
* @ORM\ManyToOne(targetEntity="User")
* @Gedmo\Blameable(on="update")
*/
private $updatedBy;
}
要獲得在Django相同的功能,我首先想到的是嘗試和使用pre_save
信號掛鉤來模擬這一點 - 但是我需要訪問視圖功能之外的請求(looks possible with some middleware,但有點hacky)。
Django是否有類似的東西可用?我最好明確地傳遞經過身份驗證的用戶嗎?