util.db¶
Database model utilities for Trustpoint.
Classes¶
Default manager for CustomDeleteActionModel. |
|
Model that provides the pre_delete() and post_delete() methods to implement custom deletion logic. |
|
Overrides a model's queryset to invoke pre- and post-delete hooks. |
Module Contents¶
- class util.db.CustomDeleteActionManager[source]¶
Bases:
django.db.models.Manager[CustomDeleteActionManager.T]Default manager for CustomDeleteActionModel.
It ensures the CustomDeleteActionQuerySet is the default queryset.
- class util.db.CustomDeleteActionModel(*args, **kwargs)[source]¶
Bases:
django.db.models.ModelModel that provides the pre_delete() and post_delete() methods to implement custom deletion logic.
It uses a custom manager to ensure the methods are called both on individual and bulk (queryset) deletes.
- pre_delete()[source]¶
Pre-delete hook for custom logic before actual deletion.
This can for example be used to check if deletion prerequisites are met.
- Return type:
None
- class util.db.CustomDeleteActionQuerySet(model=None, query=None, using=None, hints=None)[source]¶
Bases:
django.db.models.QuerySet[CustomDeleteActionQuerySet.MDL,CustomDeleteActionQuerySet.ROW]Overrides a model’s queryset to invoke pre- and post-delete hooks.
This ensures the pre_delete() and post_delete() methods are called on each object in the queryset.
- delete(*args, **kwargs)[source]¶
Runs pre_delete() on each object, bulk deletes the queryset and runs post_delete() on each object.
- Parameters:
*args (Any) – Positional arguments passed to super().delete().
**kwargs (Any) – Keyword arguments, for reference check, and passed to super().delete().
- Returns:
- A tuple of:
the total number of objects deleted and
a dictionary with the model name and the count.
- Return type:
tuple[int, dict[str, int]]