django-softdelete 0.3.4

Soft delete support for Django ORM, with undelete

  Add it to your Download Basket!

 Add it to your Watch List!

0/5

Rate it!
send us
an update
LICENSE TYPE:
BSD License 
USER RATING:
UNRATED
  0.0/5
DEVELOPED BY:
Steve Coursen
HOMEPAGE:
github.com
CATEGORY:
ROOT \ Internet \ HTTP (WWW)
django-softdelete is a soft delete for Django ORM, with support for undelete.

Can be tested directly with the following command:

django-admin.py test softdelete --settings="softdelete.settings"

Inspired by http://codespatter.com/2009/07/01/django-model-manager-soft-delete-how-to-customize-admin/

This project mostly exists to be able to provide undelete of soft-deleted objects, along with proper undeletion of related objects.

There are simple templates files in templates/.  You will need to add Django's egg loader to use the templates as is:

TEMPLATE_LOADERS = (
...
    'django.template.loaders.eggs.Loader',
)


Add the project 'softdelete' to your INSTALLED_APPS for through-the-web undelete support.

INSTALLED_APPS = (
...
    'django.contrib.contenttypes',
    'softdelete',
)


Central to the ability to undelete a soft-deleted model is the concept of changesets.  When you soft-delete an object, any objects referencing it via a ForeignKey, ManyToManyField, or OneToOneField will also be soft-deleted. This mimics the traditional CASCADE behavior of a SQL DELETE.

When the soft-delete is performed, the system makes a ChangeSet object which tracks all affected objects of this delete request.  Later, when an undelete is requested, this ChangeSet is referenced to do a cascading undelete.

If you are undeleting an object that was part of a ChangeSet, that entire ChangeSet is undeleted. 

Once undeleted, the ChangeSet object is removed from the underlying database with a regular ("hard") delete.

Last updated on April 2nd, 2012

requirements

#Django ORM #soft delete #Django #ORM #undelete #delete

Add your review!

SUBMIT