简单用例:用户更新记录后,我想获取更改的字段并将它们保存在历史表中。我正在使用django-ditryfields来获取这段历史。所以我的想法是使用 pre_save 信号来获取所有“脏”字段并将它们存储在我的历史记录表中。
问题是我在使用信号时无法获取 request.user 。我需要这个来查看哪个用户对记录进行了更改。我的另一个想法只是覆盖我的模型的保存方法,但我也无法直接从模型中获取 request.user 。我必须从视图中发送带有用户信息的 **kwarg['user'] 才能获取此信息。这很好,但我将从代码周围的许多不同位置进行保存调用。我不想每次编辑对象时都必须传递 request.user 。这就是为什么我希望有一个位置,比如一个信号,来处理所有这些。也许一些我不熟悉的中间件?
有没有更好的方法来实现这样的事情?