Models — Django Building Blocks documentation

# Models

class building_blocks.models.KaosModel(*args, **kwargs)

  Bases: `BaseKaosModel`, `RulesModel`

  Abstract Base Model that comes with UUID, create and modified, and name fields. Powered up by django-rules through RulesModel.

class building_blocks.models.UnnamedKaosModel(*args, **kwargs)

  Bases: `UnnamedBaseKaosModel`, `RulesModel`

  Abstract Base Model that comes with UUID, create and modified fields. Powered up by django-rules through RulesModel. Cousin of KaosModel but without the name field.

class building_blocks.models.SluggedKaosModel(*args, **kwargs)

  Bases: `SluggedModel`, `KaosModel`

  KaosModel with slug.

## Mixins

class building_blocks.models.HasUUIDModel(*args, **kwargs)

  Bases: `Model`

  Add a unique UUID field to the model

class building_blocks.models.NamedModel(*args, **kwargs)

  Bases: `Model`

  Model with a name field. __str__() reflects the name.

class building_blocks.models.SluggedModel(*args, **kwargs)

  Bases: `HasAutoFields`, `Model`

  Model with a slug field. Optionally autogenerate from another field denoted by slug_source

class building_blocks.models.OrderableModel(*args, **kwargs)

  Bases: `Model`

  Adds field order to the inheriting model. Used for manual sorting.

class building_blocks.models.Orderable0Model(*args, **kwargs)

  Bases: `OrderableModel`

  Same as OrderableModel, but the default order is set to 0 instead of a large number.

## Base

class building_blocks.models.UnnamedBaseKaosModel(*args, **kwargs)

  Bases: `HasUUIDModel`, `TimeStampedModel`, `Model`

class building_blocks.models.BaseKaosModel(*args, **kwargs)

  Bases: `NamedModel`, `UnnamedBaseKaosModel`

### Abstracts

class building_blocks.models.Archivable(*args, **kwargs)

  Bases: `ArchivableInterface`, `Model`

  Provides and interface to create archivable (or soft deletable) models. If you don’t want to delete an instance from your DB, but want to mark it inactive use this abstract model. Filter for available (i.e. not archived) objects using the queryset method .available(). It is provided through the model’s objects manager.

  archive(force=False)

    Set the object as archived.

    Parameters

      force – By default, the method checks if the object is archived and will through an error if it is. Set force to True to disable this check.

  restore(force=False)

    Set the object as not archived (available).

    Parameters

      force – By default, the method checks if the object is not archived and will through an error if it is. Set force to True to disable this check.

class building_blocks.models.StatusArchivable(*args, **kwargs)

  Bases: `ArchivableInterface`, `HasStatus`, `Model`

  archive()

    Set the object as archived.

  restore()

    Set the object as not archived (available).

class building_blocks.models.Publishable(*args, **kwargs)

  Bases: `StatusArchivable`, `Model`

  archive()

    Set the object as archived.

  restore()

    Set the object as not archived (available).

## QuerySets

class building_blocks.models.ArchivableQuerySet(model=None, query=None, using=None, hints=None)

  Bases: `ArchivableQuerySetInterface`, `QuerySet`

  archived()
    Returns

      queryset with db rows that are archived

  available()
    Returns

      queryset with db rows that are “available” (aka not archived)

  set_archived()

    Archive the objects in this queryset.

    Returns

      the return value from .update() i.e. the count of rows updated.

  set_restored()

    Restore (unarchive) the objects in this queryset.

    Returns

      the return value from .update() i.e. the count of rows updated.

class building_blocks.models.StatusArchivableQuerySet(model=None, query=None, using=None, hints=None)

  Bases: `ArchivableQuerySetInterface`, `QuerySet`

  archived()
    Returns

      queryset with db rows that are archived

  available()
    Returns

      queryset with db rows that are “available” (aka not archived)

  set_archived()

    Archive the objects in this queryset.

    Returns

      the return value from .update() i.e. the count of rows updated.

  set_restored()

    Restore (unarchive) the objects in this queryset.

    Returns

      the return value from .update() i.e. the count of rows updated.

class building_blocks.models.PublishableQuerySet(model=None, query=None, using=None, hints=None)

  Bases: `StatusArchivableQuerySet`, `QuerySet`

  archived()
    Returns

      queryset with db rows that are archived

  available()
    Returns

      queryset with db rows that are “available” (aka not archived)

  draft()
    Returns

      queryset with db rows that are in draft

  published()
    Returns

      queryset with db rows that are published

  set_archived()

    Archive the objects in this queryset.

    Returns

      the return value from .update() i.e. the count of rows updated.

  set_published()

    Publish the objects in this queryset.

    Returns

      the return value from .update() i.e. the count of rows updated.

  set_restored()

    Restore (unarchive) the objects in this queryset.

    Returns

      the return value from .update() i.e. the count of rows updated.

  set_unpublished()

    Unpublish the objects (set to draft) in this queryset.

    Returns

      the return value from .update() i.e. the count of rows updated.

## Interfaces

class building_blocks.models.interfaces.ArchivableInterface

  Interface for Archivable objects

  archive(*args, **kwargs)

    Set the object as archived.

  restore(*args, **kwargs)

    Set the object as not archived (available).

  unarchive(*args, **kwargs)

    Set the object as not archived (available).

class building_blocks.models.interfaces.ArchivableQuerySetInterface(model=None, query=None, using=None, hints=None)

  Default queryset interface for Archivable objects. Adds queryset methods to interact with the Archivable interface.

  archived()
    Returns

      queryset with db rows that are archived

  available()
    Returns

      queryset with db rows that are “available” (aka not archived)

  set_archived()

    Archive the objects in this queryset.

    Returns

      the return value from .update() i.e. the count of rows updated.

  set_restored()

    Restore (unarchive) the objects in this queryset.

    Returns

      the return value from .update() i.e. the count of rows updated.

## Blocks

class building_blocks.models.blocks.HasUUIDModel(*args, **kwargs)

  Add a unique UUID field to the model

class building_blocks.models.blocks.NamedModel(*args, **kwargs)

  Model with a name field. __str__() reflects the name.

class building_blocks.models.blocks.Orderable0Model(*args, **kwargs)

  Same as OrderableModel, but the default order is set to 0 instead of a large number.

class building_blocks.models.blocks.OrderableModel(*args, **kwargs)

  Adds field order to the inheriting model. Used for manual sorting.

class building_blocks.models.blocks.SluggedModel(*args, **kwargs)

  Model with a slug field. Optionally autogenerate from another field denoted by slug_source

  set_auto_fields()

    Override this method to set the fields that need to be automatically set

class building_blocks.models.blocks.TitledModel(*args, **kwargs)

  Model with a title field. __str__() reflects the title.