django-logicaldelete

Skjermbilde programvare:
django-logicaldelete
Prog.varedetaljer:
Versjon: 1.1 Beta 1 Dev3
Last opp dato: 12 May 15
Utvikler: Patrick Altman
Lisens: Gratis
Popularitet: 30

Rating: nan/5 (Total Votes: 0)

Utvikler kommentarer
django-logicaldelete er en liten og enkel app som jeg kastet sammen for å få litt gjenbruk av noe jeg gjør i nesten alle prosjekt og hver modell jeg lage. & nbsp; Det er altfor lett for gode data å bli slettet, og det være uopprettelig. Det er også altfor lett å fikse dette ved å overstyre modellens slette () metoden og bare flagger poster som slettet og deretter utnytte Django ledere til å overstyre standard atferd slik at logisk slettede elementer ikke er returnert i querysets.
Det er to unntak imidlertid at jeg har funnet nyttig for denne regelen.
& Nbsp; 1. I admin liker jeg å se alt med en indikator på hvorvidt det har blitt slettet, med mulighet til å filtrere ned til bare aktive poster, (eller slettet for den saks skyld).
& Nbsp; 2. Jeg tror fremdeles det er en gyldig avtale når et element hentes for ved det er primærnøkkelen verdi, at objektet skal returnere, selv om den er merket som slettet.
Ved hjelp av Django-logicaldelete
Bruke app er ganske enkel:
& Nbsp; 1. Sett logicaldelete sub-mappen i Python Path.
& Nbsp; 2. Arve fra logicaldelete.models.Model for alle modeller som du ønsker å dele på denne funksjonaliteten.
& Nbsp; 3. Lag og / eller registrer admins for hver av disse modellene benytter logicaldelete.admin.ModelAdmin
Ekstra
Logiske sletter håndteres av datostempling en date_removed kolonne. I tillegg vil en DATE_CREATED og date_modified kolonner fylles ut som en bekvemmelighet.
mulige utvidelser
Du kan enkelt underklasse disse to klasser for å gi generisk og nyttig funksjonalitet i modellene.
UUID Primary Key
Jeg vanligvis bruker UUID felt for mine primærnøkler fordi de gjør meg i stand til glasskår mine tabeller hvis og når jeg må, i tillegg gir de et sært id til mine data (folk kan ikke bestemme hvor mange av et bestemt objekt jeg har i min database, hvis jeg ikke vil at de skal vite, men bare ser en et heltall id i URL).
Sequence Feltet
Mange ganger jeg synes det er nyttig å ha et heltall felt på mine modeller som gir mulighet for og eksplisitt kontrollert sekvensering. Jeg normalt implementere dette som en slags synkende gjennomføring hvor dataene er sortert fra høy til lav ved sekvens verdi.
For å implementere dette du ville underklasse både modell og ModelAdmin, hvor modellen ville være en åpenbar enkel addisjon av en IntegerField, den ModelAdmin, ville overstyre get_query_set, til å gjøre noe sånt som:
klasse SequencedModel (logicaldelete.models.Model):
& Nbsp; sekvens = models.IntegerField ()
klasse MyLogicalDeletedManager (logicaldelete.models.LogicalDeletedManager):
& Nbsp; def get_query_set (egen-):
& Nbsp; hvis self.model:
& Nbsp;. Qs = super (MyLogicalDeletedManager, selv) .get_query_set () filter (date_removed__isnull = True)
& Nbsp; hvis SequencedModel i inspect.getmro (self.model):
& Nbsp; qs = qs.order_by ('- sekvens ")
& Nbsp; retur qs

Hva er nytt i denne versjonen:

  • Endret alt å all_with_deleted på LogicalDeleteManager
  • LogicalDeleteManager flyttet fra logicaldelete.models til logicaldelete.managers
  • Fjernet slettet og alt querysets fra logicaldelete.models.Model

Krav

  • Python
  • Django

Annen programvare fra utvikleren Patrick Altman

Kommentarer til django-logicaldelete

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!