我有许多模型需要引用回创建/更新它们的用户。通常这只需要将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是否有类似的东西可用?我最好明确地传递经过身份验证的用户吗?