django-logicaldelete

Screenshot Λογισμικό:
django-logicaldelete
Στοιχεία Λογισμικού:
Εκδοχή: 1.1 Beta 1 Dev3
Ανεβάστε ημερομηνία: 12 May 15
Προγραμματιστής: Patrick Altman
Άδεια: Δωρεάν
Δημοτικότητα: 1

Rating: nan/5 (Total Votes: 0)

Σχόλια δημιουργού
Django-logicaldelete είναι ένα μικρό και απλό app που έριξα μαζί για να πάρετε κάποια επαναχρησιμοποίηση από κάτι που κάνω σχεδόν σε κάθε έργο και κάθε μοντέλο μπορώ να δημιουργήσω & nbsp?. Είναι πολύ εύκολο για τα καλά στοιχεία για να διαγραφεί και να μην είναι ανακτήσιμη. Είναι επίσης πολύ εύκολο να το διορθώσω αυτό από επιτακτικούς διαγραφής μέθοδο του μοντέλου () και μόλις εξασθένηση αρχεία που διαγράφονται και, στη συνέχεια, αξιοποιώντας Διευθυντές Django να παρακάμψετε την προεπιλεγμένη συμπεριφορά έτσι ώστε λογικά τα διαγραμμένα στοιχεία δεν επιστρέφονται σε querysets.
Υπάρχουν δύο εξαιρέσεις, ωστόσο, που έχω βρεθεί χρήσιμο σε αυτόν τον κανόνα.
& Nbsp? 1. Στο διαχειριστή Μου αρέσει να βλέπω τα πάντα με δείκτη για το εάν ή όχι έχει διαγραφεί, με την ικανότητα να φιλτράρει κάτω ακριβώς ενεργά αρχεία, (ή να διαγραφεί για εκείνο το θέμα).
& Nbsp? 2. Εξακολουθώ να πιστεύω ότι είναι ένα έγκυρο αίτημα, όταν ένα στοιχείο είναι τραβηγμένη από αυτό είναι πρωτεύον κλειδί αξία, ότι το αντικείμενο θα πρέπει να επιστρέψει, ακόμη και αν αυτό έχει επισημανθεί ως διαγράφεται.
Χρήση Django-logicaldelete
Χρησιμοποιώντας το app είναι αρκετά απλή:
& Nbsp? 1. Βάλτε το υπο-φάκελο logicaldelete στην Python πορεία σας.
& Nbsp? 2. Κληρονομήσουν από logicaldelete.models.Model για όλα τα μοντέλα που θέλετε να μοιραστείτε αυτή τη λειτουργία.
& Nbsp? 3. Δημιουργία ή / και στο μητρώο admins για κάθε ένα από αυτά τα μοντέλα που χρησιμοποιούν logicaldelete.admin.ModelAdmin
Πρόσθετα
Οι Λογική διαγράφει γίνεται από την ημερομηνία σφράγισης μια date_removed στήλη. Επιπλέον, ένα DATE_CREATED και date_modified στήλες θα συμπληρωθεί ως ευκολία.
πιθανές επεκτάσεις
Μπορείτε εύκολα να υποτάξη αυτές τις δύο κατηγορίες για την παροχή γενικών και χρήσιμες λειτουργίες για τα μοντέλα σας.
UUID Πρωτεύον κλειδί
Εγώ συνήθως χρησιμοποιούν UUID πεδία για πρωτεύοντα κλειδιά μου, γιατί μου δίνουν τη δυνατότητα να θραύσμα πίνακες μου, αν και όταν έχω ανάγκη, επιπλέον, παρέχουν μια συγκαλυμμένη id στα δεδομένα μου (οι άνθρωποι δεν μπορεί να προσδιορίσει πόσοι από ένα ορισμένο αντικείμενο που έχω στο βάση δεδομένων μου, αν δεν θέλω να ξέρω, αλλά απλώς αναζητούν ένα αναγνωριστικό ένας ακέραιος στο URL).
Ακολουθία Πεδίο
Πολλές φορές βρίσκω χρήσιμο να έχουμε ένα πεδίο ακέραιος για τα μοντέλα μου που επιτρέπουν και ρητά ελεγχόμενη αλληλουχίας. Εγώ συνήθως εφαρμόζουν αυτό ως ένα είδος φθίνουσα εφαρμογή όπου τα δεδομένα είναι ταξινομημένο από υψηλή σε χαμηλή με βάση την αξία ακολουθία.
Για να να εφαρμόσουν αυτό που θα υποτάξη Τόσο το μοντέλο και ModelAdmin, όπου το μοντέλο θα είναι μια προφανή απλή προσθήκη ενός IntegerField, το ModelAdmin, θα υπερισχύσει get_query_set, να κάνουμε κάτι σαν:
κατηγορία SequencedModel (logicaldelete.models.Model):
& Nbsp? Ακολουθία = models.IntegerField ()
κατηγορία MyLogicalDeletedManager (logicaldelete.models.LogicalDeletedManager):
& Nbsp? Def get_query_set (αυτο):
& Nbsp? Αν self.model:
& Nbsp?. QS = super (MyLogicalDeletedManager, αυτο) .get_query_set () φίλτρο (date_removed__isnull = True)
& Nbsp? Αν SequencedModel σε inspect.getmro (self.model):
& Nbsp? QS = qs.order_by ('- σειρά »)
& Nbsp? QS επιστροφή

Τι είναι καινούργιο σε αυτή την έκδοση:

  • Άλλαξε τα πάντα για να all_with_deleted για LogicalDeleteManager
  • LogicalDeleteManager μετακινηθεί από logicaldelete.models να logicaldelete.managers
  • Αφαιρέθηκε διαγράφονται και όλα querysets από logicaldelete.models.Model

Απαιτήσεις :

  • Python
  • Django

Άλλο λογισμικό του προγραμματιστή Patrick Altman

Σχόλια για django-logicaldelete

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!