django_sorcery.db.models module¶
sqlalchemy model related things.
-
class
django_sorcery.db.models.Base[source]¶ Bases:
django_sorcery.db.mixins.CleanMixinBase model class for SQLAlchemy.
Can be overwritten by subclasses:
query_class = NoneAutomatically added by declarative base for easier querying:
query = None objects = None
-
class
django_sorcery.db.models.BaseMeta(classname, bases, dict_, **kw)[source]¶ Bases:
sqlalchemy.orm.decl_api.DeclarativeMetaBase metaclass for models which registers models to DB model registry when models are created.
-
django_sorcery.db.models.autocoerce(cls)[source]¶ This function automatically registers attribute events that coerces types for the attribute using django’s form fields for a given model classs. If no class is provided, it will wire up coersion for all mappers so it can be used as a class decorator or globally.
@autocoerce_properties class MyModel(db.Model): ...
or:
class MyModel(db.Model): ... autocoerce_properties()
Since django form fields are used for coersion, localization settings such as USE_THOUSAND_SEPARATOR, DATE_INPUT_FORMATS and DATETIME_INPUT_FORMATS control type conversions.
-
django_sorcery.db.models.autocoerce_properties(*attrs)[source]¶ This function automatically registers attribute events that coerces types for given attributes using django’s form fields.
- ::
- class MyModel(db.Model):
- field1 = Column(…) field2 = Column(…) field3 = Column(…) …
autocoerce_properties(MyModel.field1, MyModel.field2) # Will only force autocoersion on field1 and field2
-
django_sorcery.db.models.clone(instance, *rels, **kwargs)[source]¶ - instance: Model
- a model instance
- relations: list or relations or a tuple of relation and kwargs for that relation
- relationships to be cloned with relationship and optionally kwargs
- kwargs: dict string of any
- attribute values to be overridden
-
django_sorcery.db.models.full_clean_flush_handler(session, **kwargs)[source]¶ Signal handler for executing
full_cleanon all dirty and new objects in session.
-
django_sorcery.db.models.instant_defaults(cls)[source]¶ This function automatically registers attribute events that sets the column defaults to a model instance at model instance initialization provided that default values are simple types:
@instant_defaults class MyModel(db.Model): attr = db.Column(..., default=1) assert MyModel().default == 1