django-logicaldelete

Logiciel capture d'écran:
django-logicaldelete
Détails logiciels:
Version: 1.1 Beta 1 Dev3
Date de transfert: 12 May 15
Développeur: Patrick Altman
Licence: Gratuit
Popularité: 1

Rating: nan/5 (Total Votes: 0)

commentaires de développeurs
django-logicaldelete est une petite application simple et que je jetai ensemble pour obtenir une certaine réutilisation de quelque chose que je fais dans presque tous les projets et tous les modèles que je crée. & nbsp; Il est trop facile pour les bonnes données sont supprimés et il irrécupérable. Il est également trop facile de résoudre ce problème en remplaçant méthode delete () du modèle et juste signalement dossiers comme supprimé puis tirant profit des gestionnaires de Django à remplacer le comportement par défaut de sorte que les éléments logiquement supprimés ne sont pas retournés dans querysets.
Il ya deux exceptions cependant, que je l'ai trouvé utile à cette règle.
& Nbsp; 1. Dans l'administration, je tiens à voir le tout avec un indicateur de si oui ou non il a été supprimé, avec la possibilité de filtrer vers le bas pour les dossiers actifs, tout simplement (ou supprimés pour cette question).
& Nbsp; 2. Je pense toujours qu'il est une demande valide quand un élément est récupéré par sa valeur de clé primaire, que l'objet devrait revenir, même si elle est marquée comme supprimée.
Utilisation django-logicaldelete
Utilisation de l'application est assez simple:
& Nbsp; 1. Mettez le sous-dossier de logicaldelete dans votre chemin Python.
& Nbsp; 2. Hériter de logicaldelete.models.Model pour tous les modèles que vous souhaitez partager cette fonctionnalité.
& Nbsp; 3. Créer et / ou inscrire les admins pour chacun de ces modèles utilisant logicaldelete.admin.ModelAdmin
supplémentaires
Suppressions logiques sont traitées par l'horodatage une colonne date_removed. En outre, un colonnes DATE_CREATED et DATE_MODIFIED seront remplis comme une commodité.
Extensions possibles
Vous pouvez facilement dériver ces deux classes pour fournir des fonctionnalités générique et utile à vos modèles.
UUID clé primaire
Je typiquement en utilisant l'UUID pour mes clés primaires parce qu'ils me permettent de Shard mes tableaux si et quand je dois, en plus, ils fournissent un id brouillé à mes données (les gens ne peuvent pas déterminer le nombre d'un certain objet, je dois en ma base de données, si je ne veux pas qu'ils sachent, mais en regardant tout simplement un identifiant d'un entier dans l'URL).
Séquence champs
Plusieurs fois, je le trouver utile d'avoir un champ entier sur mes modèles qui permettent de séquençage et explicitement contrôlé. Je mets en œuvre normalement cela comme une mise en œuvre de trier par ordre décroissant, où les données sont triées de haut en bas par la valeur de séquence.
Afin de mettre en œuvre ce que vous sous-classe à la fois le modèle et ModelAdmin, où le modèle serait une simple addition évidente d'un IntegerField, l'ModelAdmin, l'emporterait get_query_set, faire quelque chose comme:
SequencedModel de classe (logicaldelete.models.Model):
& Nbsp; séquence = models.IntegerField ()
MyLogicalDeletedManager de classe (logicaldelete.models.LogicalDeletedManager):
& Nbsp; def get_query_set (auto):
& Nbsp; si self.model:
& Nbsp;. Qs = super (MyLogicalDeletedManager, auto) .get_query_set () filtrer (date_removed__isnull = True)
& Nbsp; si SequencedModel dans inspect.getmro (self.model):
& Nbsp; qs = qs.order_by ('- séquence')
& Nbsp; qs de retour

Ce qui est nouveau dans cette version:

  • Tout a changé à all_with_deleted sur LogicalDeleteManager
  • LogicalDeleteManager déplacé de logicaldelete.models à logicaldelete.managers
  • Retiré supprimé et tout querysets de logicaldelete.models.Model

Exigences :

  • Python
  • Django

D'autres logiciels de développeur Patrick Altman

nashvegas
nashvegas

14 Apr 15

django-trending
django-trending

14 Apr 15

Commentaires à django-logicaldelete

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!