如何在django_admin_log中启用django rest api CRUD操作的日志记录?
我想记录所有通过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。