django-logicaldelete

Screenshot Software:
django-logicaldelete
Detalii soft:
Versiune: 1.1 Beta 1 Dev3
Incarca data: 12 May 15
Producător: Patrick Altman
Licenţă: Gratuit
Popularitate: 1

Rating: nan/5 (Total Votes: 0)

comentarii pentru dezvoltatori
django-logicaldelete este o aplicatie mic și simplu că am aruncat împreună pentru a obține unele reutilizarea din ceva ce fac în aproape fiecare proiect și fiecare model de creez. & nbsp; E prea ușor pentru date de bună pentru a obține șterse și fi irecuperabil. Este, de asemenea, prea ușor să se stabilească acest lucru prin imperative de ștergere () metoda modelului și la doar marcarea înregistrărilor cum elimină și apoi valorificarea Managerii Django a trece peste comportamentul implicit, astfel încât obiectele șterse logic nu sunt returnate în querysets.
Există două excepții însă, că am găsit util de la această regulă.
& Nbsp; 1. În admin îmi place să văd totul cu un indicator de dacă este sau nu a fost ștearsă, cu capacitatea de a filtra pana la înregistrări doar active, (sau șterse pentru care contează).
& Nbsp; 2. Eu încă mai cred că este o cerere validă atunci când un element este adus prin e valoarea cheie primară, că obiectul ar trebui să se întoarcă, chiar dacă este marcat ca șters.
Utilizarea django-logicaldelete
Utilizarea aplicației este destul de simpla:
& Nbsp; 1. Pune logicaldelete sub-folderul în PATH Python.
& Nbsp; 2. Moștenire de la logicaldelete.models.Model pentru toate modelele pe care doriți să împărtășiți din această funcționalitate.
& Nbsp; 3. Creați și / sau Înregistrați-administratori pentru fiecare dintre aceste modele folosind logicaldelete.admin.ModelAdmin
suplimentar
Șterge logice sunt gestionate de data ștanțare o coloană date_removed. În plus, la coloane DATE_CREATED și date_modified vor fi populate ca un avantaj.
Extensii posibile
Puteți subclasa ușurință aceste două clase de a oferi functionalitate generice și util pentru modelul.
UUID cheie primară
De obicei am folosind câmpuri UUID pentru cheile primare, pentru că m-au permite să ciob tabelele mele, dacă și atunci când am nevoie, în plus, ele oferă o id obfuscated la datele mele (oamenii nu pot determina cât de multe a unui anumit obiect am în baza mea de date, dacă nu vreau să știe, ci pur și simplu în căutarea unui id un întreg în URL).
Secvență de câmp
De multe ori mi se pare util să aibă un câmp întreg de pe modelele mele care permit și secvențierea controlată în mod explicit. Am pună în aplicare în mod normal, acest lucru ca pe o punere în aplicare sortare descendentă în care datele sunt sortate de la mare la mic de valoare secvență.
În scopul de a pune în aplicare această ai subclasă atât modelul și ModelAdmin, în cazul în care modelul va fi o simplă completare evidentă a unui IntegerField, ModelAdmin, ar trece peste get_query_set, de a face ceva de genul:
SequencedModel clasa (logicaldelete.models.Model):
& Nbsp; secvență = models.IntegerField ()
MyLogicalDeletedManager clasa (logicaldelete.models.LogicalDeletedManager):
& Nbsp; def get_query_set (auto):
& Nbsp; dacă self.model:
& Nbsp;. Qs = Super (MyLogicalDeletedManager, auto) .get_query_set () filtru (date_removed__isnull = True)
& Nbsp; dacă SequencedModel in inspect.getmro (self.model):
& Nbsp; qs = qs.order_by ('- secvența ")
& Nbsp; qs returnare

Ce este nou în această versiune:

  • totul schimbat la all_with_deleted pe LogicalDeleteManager
  • LogicalDeleteManager mutat din logicaldelete.models la logicaldelete.managers
  • Eliminat elimină și totul querysets din logicaldelete.models.Model

Cerințe :

  • Python
  • Django

Alte software-uri de dezvoltator Patrick Altman

django-site-access
django-site-access

14 Apr 15

formly
formly

20 Feb 15

formly
formly

11 Apr 15

Comentarii la django-logicaldelete

Comentariile nu a fost găsit
Adauga comentarii
Porniţi pe imagini!