django-logicaldelete

Software skärmdump:
django-logicaldelete
Mjukvaruinformation:
Version: 1.1 Beta 1 Dev3
Ladda upp dagen: 12 May 15
Utvecklare: Patrick Altman
Licens: Gratis
Popularitet: 1

Rating: nan/5 (Total Votes: 0)

Developer kommentarer
django-logicaldelete är en liten och enkel app som jag kastade tillsammans för att få lite återanvändning av något jag gör i nästan varje projekt och varje modell jag skapar. & nbsp; Det är alltför lätt för bra data för att få bort och det är oåterkalleligt. Det är också alltför lätt att åtgärda detta genom att åsidosätta modellens delete metod () och bara flagga dokument som tas bort och sedan utnyttja Django chefer att åsidosätta standardbeteendet så att logiskt borttagna objekt inte returneras i querysets.
Det finns två undantag dock, som jag har funnit användbara till denna regel.
& Nbsp; 1. I admin Jag gillar att se allt med en indikator på om det har tagits bort, med möjlighet att filtrera ner till bara aktiva register, (eller borttagna för den delen).
& Nbsp; 2. Jag tycker fortfarande att det är en giltig begäran om ett objekt hämtas genom det primära nyckelvärde, att föremålet skulle återvända, även om den är markerad som raderade.
Använda django-logicaldelete
Använda appen är ganska enkel:
& Nbsp; 1. Sätt logicaldelete undermapp i din Python Path.
& Nbsp; 2. Ärva logicaldelete.models.Model för alla modeller som du vill dela i den här funktionen.
& Nbsp; 3. Skapa och / eller Registrera administratörer för var och en av dessa modeller med hjälp av logicaldelete.admin.ModelAdmin
Extra
Logiska borttagningar hanteras av datumstämpel en date_removed kolumn. Dessutom kommer en DATE_CREATED och date_modified kolumner fyllas som en bekvämlighet.
Möjliga Extensions
Du kan enkelt underklass dessa två klasser för att ge allmän och användbar funktionalitet till dina modeller.
UUID Primärnyckel
Jag brukar använder UUID fält för mina primärnycklar eftersom de gör det möjligt för mig att shard mina tabeller om och när jag behöver, dessutom de ger en förvanskad id till mina uppgifter (människor kan inte avgöra hur många av ett visst objekt jag har i min databas, om jag inte vill att de ska veta, utan bara ser en ett heltal id i webbadressen).
Sekvens Fält
Många gånger har jag tycker att det är bra att ha ett heltal fält på mina modeller som gör det möjligt för och uttryckligen kontrollerad sekvensering. Jag normalt genomföra detta som en sorts fallande genomförandet där data sorteras från högt till lågt genom sekvens värde.
För att genomföra detta skulle du underklass både modell och ModelAdmin, där modellen skulle vara en självklar enkel tillsats av ett IntegerField den ModelAdmin skulle åsidosätta get_query_set, att göra något liknande:
klass SequencedModel (logicaldelete.models.Model):
& Nbsp; sekvens = models.IntegerField ()
klass MyLogicalDeletedManager (logicaldelete.models.LogicalDeletedManager):
& Nbsp; def get_query_set (egen):
& Nbsp; om self.model:
& Nbsp;. Qs = super (MyLogicalDeletedManager, själv) .get_query_set () filter (date_removed__isnull = sant)
& Nbsp; om SequencedModel i inspect.getmro (self.model):
& Nbsp; qs = qs.order_by ('- sekvens)
& Nbsp; retur qs

Vad är nytt i den här versionen:

  • förändrade allt till all_with_deleted på LogicalDeleteManager
  • flyttade LogicalDeleteManager från logicaldelete.models till logicaldelete.managers
  • Bort bort och allt querysets från logicaldelete.models.Model

Krav :

  • Python
  • Django

Annan programvara för utvecklare Patrick Altman

formly
formly

11 Apr 15

formly
formly

20 Feb 15

Kommentarer till django-logicaldelete

Kommentarer hittades inte
Kommentar
Slå på bilder!