Chcę rejestrować wszystkie operacje CRUD wykonywane na obiektach modelu Django za pośrednictwem struktury REST zaimplementowanej w strukturze django rest. Rozszerzam viewsets.ModelViewSet, aby utworzyć własną klasę viewSet do definiowania punktów końcowych interfejsu API REST.Jak włączyć rejestrowanie operacji CRUD django rest api w django_admin_log?
5
A
Odpowiedz
0
Możliwe są dwa różne rozwiązania ...
1.Wykorzystanie sygnały w Django śledzić w każdej operacji CRUD i dokonać innego modelu, którego instancja jest tworzona dla każdej signal.Something jak to ...
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
tutaj Powiadomienie to model wykonany przez Ciebie w celu zachowania dziennika zmian.
2. innym rozwiązaniem jest użycie django-simple-history.