TimestampedModel

The TimestampedModel is an abstract model that extends the TrackableModel and adds additional fields for timestamps. It includes the following fields:

  • date_added: A DateTimeField that automatically stores the date and time when the instance is created.

  • date_updated: A DateTimeField that automatically stores the date and time when the instance is updated.

  • date_deleted: A DateTimeField that stores the date and time when the instance is deleted.

class core.models.TimestampedModel(*args, **kwargs)[source]
Abstract model that builds on the functionality of

TrackableModel by adding extra fields for timestamping.

date_added

The timestamp when the model instance was first added.

Type:

DateTimeField

date_updated

The timestamp of the most recent update to the model instance.

Type:

DateTimeField

date_deleted

The timestamp of when the model instance was deleted (if applicable).

Type:

DateTimeField

clean()

Hook for doing any extra model-wide validation after clean() has been called on every field by self.clean_fields. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field defined by NON_FIELD_ERRORS.

clean_fields(exclude=None)

Clean all fields and raise a ValidationError containing a dict of all validation errors if any occur.

full_clean(exclude=None, validate_unique=True)

Call clean_fields(), clean(), and validate_unique() on the model. Raise a ValidationError for any errors that occur.

get_deferred_fields()

Return a set containing names of deferred fields for this instance.

refresh_from_db(using=None, fields=None)

Reload field values from the database.

By default, the reloading happens from the database this instance was loaded from, or by the read router if this instance wasn’t loaded from any database. The using parameter will override the default.

Fields can be used to specify which fields to reload. The fields should be an iterable of field attnames. If fields is None, then all non-deferred fields are reloaded.

When accessing deferred fields of an instance, the deferred loading of the field will call this method.

save(*args, **kwargs)
Overrides the save method to update the history

field before saving the model instance.

save_base(raw=False, force_insert=False, force_update=False, using=None, update_fields=None)

Handle the parts of saving which should be done only once per save, yet need to be done in raw saves, too. This includes some sanity checks and signal sending.

The ‘raw’ argument is telling save_base not to save any parent models and not to do any changes to the values before save. This is used by fixture loading.

serializable_value(field_name)

Return the value of the field name for this instance. If the field is a foreign key, return the id value instead of the object. If there’s no Field object with this name on the model, return the model attribute’s value.

Used to serialize a field’s value (in the serializer, or form output, for example). Normally, you would just access the attribute directly and not use this method.

validate_unique(exclude=None)

Check unique constraints on the model and raise ValidationError if any failed.