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

1from django.utils import timezone 

2 

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) 

12 

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()