fairdm.db.models#
Model base classes, managers and fields FairDM models build on.
Module Contents#
Classes#
Metaclass that makes every model use |
|
An abstract base model that replaces |
|
Metaclass combining auto-prefetch and polymorphic model behaviour. |
|
A polymorphic queryset that also supports auto-prefetching. |
|
A polymorphic manager whose querysets also support auto-prefetching. |
|
A polymorphic queryset whose bulk delete removes the polymorphic objects correctly. |
|
A polymorphic manager that serves |
|
An abstract base for polymorphic models with auto-prefetching managers. |
API#
- class PrefetchBase#
Bases:
django.db.models.base.ModelBaseMetaclass that makes every model use
prefetch_manageras its base manager.
- class Model(*args, **kwargs)#
Bases:
django_lifecycle.LifecycleModelMixin,auto_prefetch.ModelAn abstract base model that replaces
django.db.models.Modelacross the application.It inherits from: - LifecycleModelMixin: Declarative hooks for model events such as pre_save and post_save (https://rsinger86.github.io/django-lifecycle/). - auto_prefetch.Model: Utilities for optimising queryset prefetching (https://github.com/adamchainz/django-auto-prefetch).
Attributes: added: Set to the current date and time when the record is created. modified: Updated to the current date and time whenever the record is saved.
Initialization
- added#
‘DateTimeField(…)’
- modified#
‘DateTimeField(…)’
- class PrefetchPolymorphicBase#
Bases:
fairdm.db.models.PrefetchBase,polymorphic.base.PolymorphicModelBaseMetaclass combining auto-prefetch and polymorphic model behaviour.
- class PrefetchPolymorphicQuerySet(model=None, query=None, using=None, hints=None)#
Bases:
auto_prefetch.QuerySet,polymorphic.managers.PolymorphicQuerySetA polymorphic queryset that also supports auto-prefetching.
Initialization
- class PrefetchPolymorphicManager#
Bases:
polymorphic.managers.PolymorphicManagerA polymorphic manager whose querysets also support auto-prefetching.
- queryset_class#
None
- class PolymorphicQuerySet(*args: Any, **kwargs: Any)#
Bases:
polymorphic.managers.PolymorphicQuerySetA polymorphic queryset whose bulk delete removes the polymorphic objects correctly.
Initialization
- delete()#
Delete the queryset as base-class rows, so every polymorphic subclass row goes too.
- class PolymorphicManager#
Bases:
polymorphic.managers.PolymorphicManagerA polymorphic manager that serves
PolymorphicQuerySet.- queryset_class#
None
- class PolymorphicModel(*args, **kwargs)#
Bases:
polymorphic.models.PolymorphicModelAn abstract base for polymorphic models with auto-prefetching managers.
Attributes: objects: The default manager for polymorphic queries. prefetch_manager: The manager auto-prefetch uses for related lookups.
Initialization
- objects#
‘PrefetchPolymorphicManager(…)’
- prefetch_manager#
‘PrefetchPolymorphicManager(…)’