如何在django_admin_log中启用django rest api CRUD操作的日志记录?

7 投票
1 回答
2811 浏览
提问于 2025-04-28 01:39

我想记录所有通过Django REST框架对模型对象进行的CRUD操作。CRUD就是创建、读取、更新和删除的意思。我扩展了viewsets.ModelViewSet,创建了一个自定义的viewSet类,用来定义REST API的接口。

暂无标签

1 个回答

2

这里有两种不同的解决方案...

1. 在Django中使用信号来跟踪每次CRUD操作,并为每个信号创建一个不同的模型实例。可以这样做...

signals.py 
@receiver(post_save, sender= Sender_model)
def crud_log(sender,created,**kwargs):
    obj= kwargs.get('instance')
    recipient=User.objects.get()
            Notification.objects.create(
                recipient= recipient,
                comment= obj,
                send_by=obj.supporter,
                text= "%s has commented on %s" % (obj.supporter,obj.project)
            )
            return None

这里的Notification是你自己创建的一个模型,用来记录变更的日志。

2. 另一个解决方案是使用 django-simple-history

撰写回答