moo.core.models.object.AncestorCache
- class moo.core.models.object.AncestorCache(*args, **kwargs)
Denormalized flat table of ancestor relationships for fast indexed JOINs. Replaces recursive CTE usage in hot-path verb and property lookups. Maintained by the relationship_changed() signal on parents.add/remove.
- __init__(*args, **kwargs)
Methods
__init__(*args, **kwargs)adelete([using, keep_parents])arefresh_from_db([using, fields])asave([force_insert, force_update, using, ...])check(**kwargs)clean()Hook for doing any extra model-wide validation after clean() has been called on every field by self.clean_fields.
clean_fields([exclude])Clean all fields and raise a ValidationError containing a dict of all validation errors if any occur.
date_error_message(lookup_type, field_name, ...)delete([using, keep_parents])from_db(db, field_names, values)full_clean([exclude, validate_unique, ...])Call clean_fields(), clean(), validate_unique(), and validate_constraints() on the model.
get_constraints()get_deferred_fields()Return a set containing names of deferred fields for this instance.
prepare_database_save(field)refresh_from_db([using, fields])Reload field values from the database.
save([force_insert, force_update, using, ...])Save the current instance.
save_base([raw, force_insert, force_update, ...])Handle the parts of saving which should be done only once per save, yet need to be done in raw saves, too.
serializable_value(field_name)Return the value of the field name for this instance.
unique_error_message(model_class, unique_check)validate_constraints([exclude])validate_unique([exclude])Check unique constraints on the model and raise ValidationError if any failed.
Attributes
The ancestor Object reachable from
descendant.ancestor_idNumber of hops from
descendanttoancestor.The descendant Object — the row says "this object inherits from
ancestoratdepthhops".descendant_ididA wrapper for a deferred-loading field.
objectsRelationship.weightof the depth-1 link leading to this ancestor.pk