fairdm.db.models#

Model base classes, managers and fields FairDM models build on.

Module Contents#

Classes#

PrefetchBase

Metaclass that makes every model use prefetch_manager as its base manager.

Model

An abstract base model that replaces django.db.models.Model across the application.

PrefetchPolymorphicBase

Metaclass combining auto-prefetch and polymorphic model behaviour.

PrefetchPolymorphicQuerySet

A polymorphic queryset that also supports auto-prefetching.

PrefetchPolymorphicManager

A polymorphic manager whose querysets also support auto-prefetching.

PolymorphicQuerySet

A polymorphic queryset whose bulk delete removes the polymorphic objects correctly.

PolymorphicManager

A polymorphic manager that serves PolymorphicQuerySet.

PolymorphicModel

An abstract base for polymorphic models with auto-prefetching managers.

API#

class PrefetchBase#

Bases: django.db.models.base.ModelBase

Metaclass that makes every model use prefetch_manager as its base manager.

class Model(*args, **kwargs)#

Bases: django_lifecycle.LifecycleModelMixin, auto_prefetch.Model

An abstract base model that replaces django.db.models.Model across 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 Meta#
abstract#

True

class PrefetchPolymorphicBase#

Bases: fairdm.db.models.PrefetchBase, polymorphic.base.PolymorphicModelBase

Metaclass combining auto-prefetch and polymorphic model behaviour.

class PrefetchPolymorphicQuerySet(model=None, query=None, using=None, hints=None)#

Bases: auto_prefetch.QuerySet, polymorphic.managers.PolymorphicQuerySet

A polymorphic queryset that also supports auto-prefetching.

Initialization

class PrefetchPolymorphicManager#

Bases: polymorphic.managers.PolymorphicManager

A polymorphic manager whose querysets also support auto-prefetching.

queryset_class#

None

class PolymorphicQuerySet(*args: Any, **kwargs: Any)#

Bases: polymorphic.managers.PolymorphicQuerySet

A 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.PolymorphicManager

A polymorphic manager that serves PolymorphicQuerySet.

queryset_class#

None

class PolymorphicModel(*args, **kwargs)#

Bases: polymorphic.models.PolymorphicModel

An 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(…)’

class Meta#
abstract#

True