pytoolbox.django.models.managers.mixins module

Mix-ins for building your own model managers.

class pytoolbox.django.models.managers.mixins.AtomicGetUpdateOrCreateMixin[source]

Bases: object

savepoint = False
get_or_create(defaults=None, **kwargs)[source]
update_or_create(defaults=None, **kwargs)[source]
class pytoolbox.django.models.managers.mixins.AtomicGetRestoreOrCreateMixin[source]

Bases: object

savepoint = False
get_restore_or_create(*args, **kwargs)[source]
class pytoolbox.django.models.managers.mixins.CreateModelMethodMixin[source]

Bases: object

create(*args, **kwargs)[source]
class pytoolbox.django.models.managers.mixins.StateMixin[source]

Bases: object

Generate on the fly utility query-set filtering methods to a model using a pytoolbox.states.StateEnum to implement its own state machine. Then you can use something like Model.objects.ready_or_canceled(inverse=True) to exclude models in state READY or CANCELED.

This mixin requires the following to work:

  • Add a states attribute to your model class set to the states class you defined earlier.
  • Add a state field to the model for saving instance state in database.
in_states(states, inverse=False)[source]

Filter query set to include instances in states.

class pytoolbox.django.models.managers.mixins.RelatedModelMixin[source]

Bases: object