django-logicaldelete

Software screenshot:
django-logicaldelete
Software detaljer:
Version: 1.1 Beta 1 Dev3
Upload dato: 12 May 15
Udvikler: Patrick Altman
Licens: Gratis
Popularitet: 1

Rating: nan/5 (Total Votes: 0)

Developer kommentarer
Django-logicaldelete er en lille og enkel app, som jeg kastede sammen for at få nogle genbrug ud af noget, jeg gør i næsten alle projekter, og hver model jeg oprette. & nbsp; Det er for nemt for gode data til at få slettet, og det være ubrugeligt. Det er også for let at løse dette af tvingende modellens slet () metode og bare udflagning protokoller, som slettes, og derefter udnytte Django ledere at tilsidesætte standard opførsel, således at logisk slettede elementer ikke returneres i querysets.
Der er to undtagelser dog, at jeg har fundet nyttige for denne regel.
& Nbsp; 1. I admin jeg gerne se alt med en indikator for, hvorvidt det er blevet slettet, med mulighed for at filtrere ned til bare aktive optegnelser, (eller slettet for den sags skyld).
& Nbsp; 2. Jeg synes stadig, det er en gyldig anmodning, når en vare er hentet til som det er primær nøgle værdi, at objektet skal returnere, selv om det er markeret som slettet.
Brug Django-logicaldelete
Brug af app er temmelig simpel:
& Nbsp; 1. Sæt logicaldelete undermappe i din Python Sti.
& Nbsp; 2. Arve fra logicaldelete.models.Model for alle modeller, som du ønsker at få del i denne funktionalitet.
& Nbsp; 3. Opret og / eller Registrer admins for hver af disse modeller ved hjælp logicaldelete.admin.ModelAdmin
Yderligere
Logiske sletter håndteres efter dato stempling en date_removed kolonne. Desuden vil et DATE_CREATED og date_modified kolonner blive befolket som en bekvemmelighed.
Mulige Extensions
Du kan nemt underklasse disse to klasser til at give generiske og brugbar funktionalitet til dine modeller.
UUID Primary Key
Jeg typisk bruger UUID felter for mine primære nøgler, fordi de giver mig mulighed for at shard mine tabeller, hvis og når jeg har brug for at, derudover de giver en sammenrodet id til mine data (mennesker kan ikke afgøre, hvor mange af en bestemt genstand, jeg har i min database, hvis jeg ikke vil have dem til at vide, men blot ser en et heltal id i URL'en).
Sequence Field
Mange gange finder jeg det nyttigt at have et heltal felt på mine modeller der giver mulighed for og udtrykkeligt kontrolleret sekventering. Jeg normalt gennemføre denne som en slags faldende implementering hvor dataene sorteres fra høj til lav i sekvens værdi.
For at at gennemføre denne du ville underklasse både model og ModelAdmin, hvor Model ville være en oplagt simpel addition af en IntegerField den ModelAdmin ville tilsidesætte get_query_set, til at gøre noget lignende:
klasse SequencedModel (logicaldelete.models.Model):
& Nbsp; sekvens = models.IntegerField ()
klasse MyLogicalDeletedManager (logicaldelete.models.LogicalDeletedManager):
& Nbsp; def get_query_set (selv-):
& 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; return qs

Hvad er nyt i denne udgivelse:

  • Ændret alt for 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

Andre software developer Patrick Altman

Kommentarer til django-logicaldelete

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!