drf-history 1.0.1

Creator: danarutscher

Last updated:

Add to Cart

Description:

drfhistory 1.0.1

DRF-HISTORY
drf-history is a simple django rest framework app to track actions performed in a django app and to also gets the current request.
The actions being tracked are POST, DELETE, PUT and PATCH
Data being captured is



Data
Description




user
The current loggedin user making the request


request data(body)
Data being sent (POST, PATCH and PUT)


response data
response data after the request is complete


table_name
name of the model the request is affecting


instance_id
The id of the created, updated or deleted model instance


method
The request method i.e POST, DELETE, PUT or PATCH


created_at
Date time object for when the request is being carried out


path
path the request is coming from







Quick start


Add track_actions to your INSTALLED_APPS setting
INSTALLED_APPS = [
...,
'track_actions',
]



Add track_actions.requestMiddleware.RequestMiddleware in settings under middlewares
MIDDLEWARE = [
... ,
'track_actions.requestMiddleware.RequestMiddleware',
]



Run python manage.py migrate track_actions to create the History model.
`python manage.py migrate track_actions`



After this every POST, UPDATE and DELETE action will be recorded in your database under the history model.
To prevent sensitive fields from being saved
For example passwords.
You will have to create a yaml file called drf_history.yaml on the root of your django project.
In this file add the following.
fields_to_exclude: ["password","another key here"]
You can then add all sensitve fields in the list separated by commas. These fields will be removed from the saved request data. This will apply to all tables.
This is only for data sent in the request.
To get the current request
To get the current request in progress anywhere in the application.


Import the relevant class.
from track_actions.requestMiddleware import RequestMiddleware



2 Get the current request object.
current_request = RequestMiddleware.get_request_data()[1]

To access the get history endpoint


In your project's url file
`import track_actions`



Register the url in the urlpattern
`path('track_actions/', include('track_actions.urls'))`



visit the url in the browser or on postman
`http://127.0.0.1:8000/track_actions/history/`



you should be able to see all the recorded history if you have admin priveleges and you are authenticated.
Alternatively
You can create your own endpoint to view all history from the History model by importing it in your views or serializers.
`from track_actions.models import History`

NOTE
This package will only work if you have a user in a request and a user model in your database.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.