django-logicaldelete

Software kuvakaappaus:
django-logicaldelete
Ohjelmiston tiedot:
Versio: 1.1 Beta 1 Dev3
Lähetyksen päivämäärä: 12 May 15
Kehittäjä: Patrick Altman
Lupa: Vapaa
Suosio: 30

Rating: nan/5 (Total Votes: 0)

Kehittäjän kommentit
Django-logicaldelete on pieni ja yksinkertainen sovellus, jonka heitin yhdessä saada joitakin uudelleen ulos jotain teen lähes jokaisessa hankkeessa, ja jokainen malli luon. & nbsp; Se on liian helppoa hyviä tietoja saa poistaa, ja sitä voi palauttaa. Se on myös liian helppo korjata tämän pakottavilla mallin poiston () menetelmä ja aivan hiipumassa tallenteita poistetaan ja sitten hyödyntämällä Django: n johtajat ohittaa oletuksena käyttäytymistä niin, että loogisesti poistetut eriä ei palauteta querysets.
On kaksi poikkeusta kuitenkin, että olen löytänyt hyödyllistä tähän sääntöön.
& Nbsp; 1. Vuonna admin Haluan nähdä kaiken indikaattori onko se on poistettu, jossa mahdollisuuden suodattaa alas vain aktiivisia kirjaa, (tai poistaa, että asiaa).
& Nbsp; 2. Olen edelleen sitä mieltä, että on pätevä pyyntö, kun tuotetta on noudetaan mukaan se ensisijainen keskeinen arvo, että kohde tulee palauttaa, vaikka se merkitään poistetuksi.
käyttäminen Django-logicaldelete
Käyttämällä sovellus on melko yksinkertainen:
& Nbsp; 1. Laita logicaldelete sub-kansioon Python Path.
& Nbsp; 2. Perivät logicaldelete.models.Model kaikkiin malleihin, jotka haluat jakaa tämän toiminnallisuuden.
& Nbsp; 3. Luo ja / tai Rekisteröidy ylläpitäjät jokaiselle näistä malleista käyttää logicaldelete.admin.ModelAdmin
Lisää
Looginen Poistaa hoitaa päivämäärän leimaamalla date_removed sarakkeeseen. Lisäksi DATE_CREATED ja date_modified sarakkeet asuttu kuin mukavuutta.
Mahdolliset Laajennukset
Voit helposti alaluokka nämä kaksi luokkaa tarjoamaan yleisiä ja hyödyllisiä toimintoja omia malleja.
UUID Primary Key
Olen yleensä käyttää UUID kenttiä minun ensisijainen avaimia, koska ne mahdollistavat minut Shard minun taulukoita, jos ja kun minun täytyy lisäksi ne tarjoavat sekoitetussa id minun tietoja (ihmiset eivät voi päättää, kuinka monta tietyn esineen minulla on tietokannasta, jos en halua heidän tietävän, vaan yksinkertaisesti haluavat kokonaisluvun id URL).
Sequence Field
Monta kertaa olen löytää se hyödyllistä saada kokonaisluvun kentän minun malleja, jotka mahdollistavat ja nimenomaan ohjata sekvensointi. En yleensä toteuttaa tämän eräänlaisena laskeva täytäntöönpanon jossa tiedot on lajiteltu korkeista mataliin järjestyksen arvon.
Voidakseen toteuttaa tämän olisit alaluokka sekä mallin ja ModelAdmin, jossa malli olisi ilmeinen yksinkertaisesti lisäämällä IntegerField, ModelAdmin olisi etusija get_query_set, tehdä jotain:
luokan SequencedModel (logicaldelete.models.Model):
& Nbsp; sekvenssi = models.IntegerField ()
luokan MyLogicalDeletedManager (logicaldelete.models.LogicalDeletedManager):
& Nbsp; def get_query_set (itse):
& Nbsp; jos self.model:
& Nbsp; qs = Super (MyLogicalDeletedManager, itse) .get_query_set (). Suodatin (date_removed__isnull = True)
& Nbsp; Jos SequencedModel vuonna inspect.getmro (self.model):
& Nbsp; qs = qs.order_by ('- järjestyksessä)
& Nbsp; paluu qs

Mikä on uusi tässä julkaisussa:

  • Muutettu kaikkea all_with_deleted päälle LogicalDeleteManager
  • LogicalDeleteManager muutti logicaldelete.models ja logicaldelete.managers
  • Poistettu poistetut ja kaikkea querysets alkaen logicaldelete.models.Model

vaatimukset

  • Python
  • Django

Muu ohjelmistojen kehittäjä Patrick Altman

formly
formly

11 Apr 15

Kommentit django-logicaldelete

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!