Coverage for api\soft_delete.py: 100.0%
9 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-08-30 20:58 +0200
« prev ^ index » next coverage.py v7.15.2, created at 2026-08-30 20:58 +0200
1from django.utils import timezone
3class SoftDeleteQuerysetMixin:
4 """
5 Clase para aplicar un soft delete, es decir que no se elimine de bbdd el elemento, si no que se marque como borrado,
6 ademas, se sobreescribe el queryset para que por defecto no saque los elementos marcados como borrados
7 """
8 # Se sobreescribe para que el queryset no saque los borrados, todas las tablas tienen el campo is_deleted
9 def get_queryset(self):
10 qs = super().get_queryset()
11 return qs.filter(is_deleted=False)
13 # Se sobreescribe el destroy para que en vez de eliminar, marque como borrado
14 def perform_destroy(self, instance):
15 instance.is_deleted = True
16 instance.deleted_at = timezone.now()
17 instance.save()