django-logicaldelete

Screenshot der Software:
django-logicaldelete
Softwarebeschreibung:
Version: 1.1 Beta 1 Dev3
Upload-Datum: 12 May 15
Entwickler: Patrick Altman
Lizenz: Frei
Popularität: 30

Rating: nan/5 (Total Votes: 0)

Entwickler-Kommentare
django-logicaldelete ist eine kleine und einfache Anwendung, die ich warf zusammen, um etwas Wiederverwendung von etwas, was ich tun, in fast jedem Projekt und jedem Modell erstelle ich & nbsp erhalten;. Es ist zu einfach für gute Daten gelöscht und nicht wiederhergestellt werden. Es ist auch zu einfach, dies durch zwingende delete () Methode des Modells und nur das Markieren von Datensätzen als gelöscht und dann die Nutzung Djangos Managers zum Standardverhalten überschreiben, damit logisch gelöscht Elemente werden nicht in querysets zurück beheben.
Es gibt zwei Ausnahmen jedoch, die ich sinnvoll, diese Regel gefunden.
& Nbsp; 1. Im Admin Ich mag, alles mit einer Anzeige davon, ob sie gelöscht wurde sehen, mit der Fähigkeit, um nur aktive Datensätze (oder in diesem Fall gelöscht) Filter nach unten.
& Nbsp; 2. Ich denke immer noch, es ist ein gültiger Antrag, wenn ein Element geholt für durch seine Primärschlüsselwert, dass das Objekt zurückgeben sollte, auch wenn es als gelöscht markiert ist.
Mit django-logicaldelete
Mit dem app ist ziemlich einfach:
& Nbsp; 1. Legen Sie die logicaldelete Unterordner in Ihrer Python-Pfad.
& Nbsp; 2. Erben von logicaldelete.models.Model für alle Modelle, die Sie in dieser Funktion teilen.
& Nbsp; 3. Erstellen und / oder Registrieren Admins für jedes dieser Modelle mit logicaldelete.admin.ModelAdmin
Weitere
Logische Löschungen werden von Datumsstempel ein date_removed Spalte behandelt. Darüber hinaus wird ein date_created und DATE_MODIFIED Spalten als weiterführende bestückt werden.
Mögliche Erweiterungen
Sie können ganz einfach eine Unterklasse diese beiden Klassen, generische und nützliche Funktionen, um Ihre Modelle bieten.
UUID Primary Key
I in der Regel unter Verwendung von UUID Felder für meine Primärschlüssel, weil sie mir ermöglichen, meine Tabellen Scherbe, ob und wann ich muss darüber hinaus bieten sie eine verschleierte id, um meine Daten (Personen nicht feststellen können, wie viele von einem bestimmten Objekt Ich habe in meine Datenbank, wenn ich nicht will, dass sie wissen, aber einfach nur eine eine ganze Zahl-ID in der URL).
Sequence Feld
Viele Male habe ich es für sinnvoll, um einen Integer-Feld auf meiner Modelle, die für und explizit gesteuert Sequenzierung zu ermöglichen. I in der Regel zu implementieren dies als absteigend sortieren Umsetzung, wo die Daten von hohen zu niedrigen durch Sequenzwert sortiert.
Um dies zu realisieren würden Sie sowohl die Artikelnummer und Modeladmin, wo das Modell würde eine offensichtliche einfache Zugabe eines Integer, der Modeladmin, wäre get_query_set schreiben Unterklasse, um etwas zu tun:
Klasse SequencedModel (logicaldelete.models.Model):
& Nbsp; sequence = models.IntegerField ()
Klasse MyLogicalDeletedManager (logicaldelete.models.LogicalDeletedManager):
& Nbsp; def get_query_set (self):
& Nbsp; wenn self.model:
& Nbsp;. Qs = super (MyLogicalDeletedManager Selbst) .get_query_set () filtern (date_removed__isnull = True)
& Nbsp; wenn SequencedModel in inspect.getmro (self.model):
& Nbsp; qs = qs.order_by ('- Sequenz)
& Nbsp; Rück qs

Was ist neu in dieser Pressemitteilung:

  • änderte sich alles auf LogicalDeleteManager all_with_deleted
  • LogicalDeleteManager zog von logicaldelete.models zu logicaldelete.managers
  • Entfernt gelöscht und alles querysets von logicaldelete.models.Model

Anforderungen :

  • Python
  • Django

Andere Software von Entwickler Patrick Altman

formly
formly

20 Feb 15

django-trending
django-trending

14 Apr 15

Kommentare zu django-logicaldelete

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!