django-logicaldelete

Programinė įranga Screenshot:
django-logicaldelete
Programinė detalės:
Versija: 1.1 Beta 1 Dev3
Įkėlimo datą: 12 May 15
Kūrėjas: Patrick Altman
Licencija: Nemokamai
Populiarumas: 30

Rating: nan/5 (Total Votes: 0)

Kūrėjo komentarai
Django-logicaldelete yra mažas ir paprastas app, kuri Mečiau kartu kažkiek pakartotinai iš ką aš beveik kiekvieną projektą ir kiekvieną modelį aš sukurti. & nbsp; Tai labai paprasta gerų duomenų ištrinta ir tai būtų nepataisoma. Tai taip pat labai lengva išspręsti šią privalomaisiais modelio trynimo () metodą ir tiesiog pažymite įrašus ištrinti ir tada sverto Django vadovų nepaisyti numatytąją elgesį taip, kad logiškai ištrintus elementus nėra grąžinami querysets.
Tačiau yra dvi išimtys, kad aš rasiu naudinga šios taisyklės.
& Nbsp; 1. Per admin man patinka matyti viską su nuo to, ar jis buvo ištrintas rodiklis, su galimybe filtruoti žemyn tiesiog aktyvių įrašus, (arba panaikinamas šiuo klausimu).
& Nbsp; 2. Aš vis dar manau, kad tai galioja prašymas, kai elementas yra nerealu Nes tai pirminis raktas vertė, tai objektas turėtų grįžti, net jei jis yra pažymėtas kaip ištrinti.
Naudojant Django-logicaldelete
Naudojant programą yra gana paprasta:
& Nbsp; 1. Įdėkite logicaldelete sub-aplanką savo Python Kelias.
& Nbsp; 2. Paveldėti iš logicaldelete.models.Model visiems modeliams, kuriuos norite pasidalinti šiuo funkcionalumu.
& Nbsp; 3. Sukurti ir / arba Registruotis administratoriai kiekvienam iš šių modelių, naudojančių logicaldelete.admin.ModelAdmin
Papildoma
Loginiai ištrina yra tvarkomi pagal datą štampavimo yra date_removed skiltyje. Be to, DATE_CREATED ir date_modified Stulpeliai bus apgyvendintas kaip patogiau.
galimybe pratęsti "
Jūs galite lengvai poklasio šias dvi klases pateikti bendrą ir naudingą funkcionalumą savo modelių.
UUID Pirminis raktas
Aš paprastai naudojant uuid laukus mano pirminių raktų, nes jie leidžia man Shard mano lenteles, jei ir kai man reikia, be to, jos suteikia neskaidri id mano duomenų (žmonės negali nustatyti, kiek tam tikro objekto Turiu mano duomenų, jei aš nenoriu, kad jie žinotų, bet tiesiog ieško žinutę sveikasis ID URL).
Sekos laukas
Daug kartų aš suprato, kad tai naudinga turėti sveikas lauką mano modelių, kad būtų galima aiškiai ir kontroliuoja sekos. Aš paprastai įgyvendinti tai, kaip rūšiuoti mažėjančia tvarka įgyvendinti, kai duomenys yra rūšiuojami nuo didelio iki mažo iki sekos verte.
Siekiant įgyvendinti šią norite poklasis modelį bei ModelAdmin, kur Modelis būtų akivaizdi paprastą pridedant IntegerField, kad ModelAdmin, būtų svarbesni get_query_set, padaryti kažką panašaus:
klasė SequencedModel (logicaldelete.models.Model):
& Nbsp; seka = models.IntegerField ()
klasė MyLogicalDeletedManager (logicaldelete.models.LogicalDeletedManager):
& Nbsp; Def get_query_set (si):
& Nbsp; jei self.model:
& Nbsp;. QS = super (MyLogicalDeletedManager, savarankiškai) .get_query_set () filtrą (date_removed__isnull = true)
& Nbsp; jei SequencedModel į inspect.getmro (self.model):
& Nbsp; QS = qs.order_by ("- seka)
& Nbsp; grąžos QS

Kas naujo , šioje laidoje:

  • Pasikeitė viskas all_with_deleted ant LogicalDeleteManager
  • LogicalDeleteManager persikėlė iš logicaldelete.models į logicaldelete.managers
  • Pašalinta ištrinti ir viskas querysets iš logicaldelete.models.Model

Reikalavimai

  • Python,
  • Django

Kita programinė įranga kūrėjas Patrick Altman

Komentarai django-logicaldelete

Komentarai nerastas
Pridėti komentarą
Pasukite ant paveikslėlio!