pytoolbox.django.models.query.mixins module

Mix-ins for building your own query-sets.

class pytoolbox.django.models.query.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.query.mixins.AtomicGetRestoreOrCreateMixin[source]

Bases: object

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

Bases: object

create(*args, **kwargs)[source]
class pytoolbox.django.models.query.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.