django-logicaldelete

Screenshot Software:
django-logicaldelete
Szczegóły programowe:
Wersja: 1.1 Beta 1 Dev3
Filmu: 12 May 15
Wywoływacz: Patrick Altman
Licencja: Wolny
Popularność: 1

Rating: nan/5 (Total Votes: 0)

Komentarze Twórca
django-logicaldelete jest mała i prosta aplikacja, która wrzuciłem razem trochę ponownego wykorzystania z czegoś zrobić w prawie każdym projekcie i każdego modelu tworzę. & nbsp; To zbyt łatwe dla dobrych danych zostaną usunięte i nie do odzyskania. Jest to także zbyt łatwo to naprawić metodą usuwania nadrzędnymi modelki () i po prostu słabnącym rekordy jako usunięte, a następnie wykorzystując Menedżerowie Django, aby zastąpić domyślne zachowanie, tak aby logicznie usunięte elementy nie są zwracane w querysets.
Istnieją jednak dwa wyjątki, które mają znaleźć przydatne dla tej reguły.
& Nbsp; 1. W admin Chciałbym zobaczyć wszystko z wskaźnikiem tego, czy został on usunięty, z możliwością filtrowania do zaledwie aktywnych rekordów, (lub usuniętych na ten temat).
& Nbsp; 2. Nadal uważam, że to jest ważne, gdy przedmiot wniosku pobierana jest przez jego wartość klucza podstawowego, że obiekt powinien wrócić, nawet jeśli jest to oznaczone jako usunięte.
Django-logicaldelete
Korzystanie z aplikacji jest bardzo prosty:
& Nbsp; 1. Umieść logicaldelete podfolder w ścieżce Pythona.
& Nbsp; 2. Dziedziczą logicaldelete.models.Model dla wszystkich modeli, które chcą uczestniczyć w tej funkcji.
& Nbsp; 3. Tworzenie i / lub Zarejestruj administratorów dla każdego z tych modeli z logicaldelete.admin.ModelAdmin
Dodatkowe
Logika Usuwa obsługiwane są przez daty tłoczenia kolumnę date_removed. Ponadto DATE_CREATED i date_modified kolumny będą wypełniane wygody.
Możliwe rozszerzenia
Możesz łatwo podklasy te dwie klasy, aby zapewnić ogólne i przydatne funkcje do swoich modeli.
UUID klucz podstawowy
I zazwyczaj za pomocą pola UUID dla moich podstawowych kluczy, ponieważ pozwalają mi shard moje tabel, czy i kiedy trzeba, a ponadto zapewniają one pogmatwanego id do moich danych (ludzie nie potrafią określić, ile pewnego obiektu mam w mój bazy danych, jeśli nie chcę, żeby wiedzieli, ale po prostu patrząc id całkowitą w adresie URL).
Sekwencja Pole
Wiele razy uważam, że warto mieć całkowitą na moje pole modeli, które pozwalają na kontrolowane i wyraźnie sekwencjonowanie. I zwykle zaimplementować to w realizacji sortowania malejąco gdzie dane są posortowane od wysokiej do niskiej przez wartość sekwencji.
Aby zaimplementować to chcesz podklasy zarówno model i ModelAdmin, gdzie model byłby oczywisty proste dodanie IntegerField, w ModelAdmin, by zastąpić get_query_set, aby zrobić coś takiego:
Klasa SequencedModel (logicaldelete.models.Model):
& Nbsp; sekwencja = models.IntegerField ()
Klasa MyLogicalDeletedManager (logicaldelete.models.LogicalDeletedManager):
& Nbsp; def get_query_set (self):
& Nbsp; jeśli self.model:
. & Nbsp; qs = Super (MyLogicalDeletedManager, self) .get_query_set () filtr (date_removed__isnull = True)
& Nbsp; jeśli SequencedModel w inspect.getmro (self.model):
& Nbsp; qs = qs.order_by ('- sekwencja ")
& Nbsp; qs powrotne

Co nowego w tym wydaniu:

  • zmienił wszystko, aby all_with_deleted na LogicalDeleteManager
  • LogicalDeleteManager przeniesiony z logicaldelete.models do logicaldelete.managers
  • Usunięto usunięte i wszystko querysets z logicaldelete.models.Model

Wymagania :

  • Python
  • Django

Inne programy z deweloperem Patrick Altman

django-trending
django-trending

14 Apr 15

formly
formly

11 Apr 15

Komentarze do django-logicaldelete

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!