我有许多模型需要参考创建/更新它们的用户。通常,这仅涉及传递request.user
给相关属性,但是如果可能的话,我希望将其设为自动。
有一个名为Blameable的Doctrine扩展(一个 PHP ORM),它将在持久化模型实例时设置对当前经过身份验证的用户的引用,例如:
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
信号挂钩来模拟这一点 - 但是我需要在视图函数之外访问请求(看起来可以使用一些中间件,但有点 hacky)。
Django 是否已经有类似的东西可用?我最好明确传递经过身份验证的用户吗?