Source code for django_core.db.models.mixins.crud

from django.db import models

from django_core.exceptions import NotAllowed


[docs]class AbstractSafeDeleteModelMixin(models.Model): """Give a model safe delete logic so an indicator can be set to is_deleted and not removed from the database. """ is_deleted = models.BooleanField(default=False) class Meta: abstract = True def delete_safe(self): self.is_deleted = True self.save()
[docs]class ReadOnlyModelMixin(models.Model): """This is a wrapper class around a model so all methods and fields can be used the same as the extending model, but this doesn't allow the model instance to be saved. """ class Meta: abstract = True def save(self, *args, **kwargs): # This model is read only and doesn't allow saving raise NotAllowed(_("Read only models don't allow calling the .save() " "method."))