
Soft delete in Django without making a mess
Soft delete sounds simple: add a deleted_at field and stop calling DELETE. The trouble starts a little later, when deleted rows still show up in queries, unique fields prevent you from creating replacements, related objects behave differently from normal deletes, and somebody accidentally calls QuerySet.delete(). …
Read article








