diff --git a/rest_framework_tracking/base_mixins.py b/rest_framework_tracking/base_mixins.py index ae39313..0346f1f 100644 --- a/rest_framework_tracking/base_mixins.py +++ b/rest_framework_tracking/base_mixins.py @@ -18,6 +18,7 @@ class BaseLoggingMixin(object): logging_methods = "__all__" sensitive_fields = {} + delete_log_days_period = None def __init__(self, *args, **kwargs): assert isinstance( diff --git a/rest_framework_tracking/mixins.py b/rest_framework_tracking/mixins.py index 0513d48..53b6098 100644 --- a/rest_framework_tracking/mixins.py +++ b/rest_framework_tracking/mixins.py @@ -9,6 +9,11 @@ def handle_log(self): Defaults on saving the data on the db. """ + if self.delete_log_days_period is not None: + from django.utils import timezone + now = timezone.make_aware(datetime.datetime.now(), timezone.get_default_timezone()) + delete_before_date_time = now - datetime.timedelta(days=self.delete_log_days_period) + APIRequestLog.objects.filter(view=self.log['view'], requested_at__lt=delete_before_date_time).delete() APIRequestLog(**self.log).save()