Django-qmethod είναι μια εφαρμογή για Django εύκολα το σχεδιασμό των ενεργειών στις συλλογές των μοντέλων Django (δηλαδή, QuerySets και Διευθυντές).
Μια μέρα, ελπίζω κάτι σαν αυτό περιλαμβάνεται στο Django πυρήνα.
Χρήση
Βασική χρήση είναι ως εξής:
cPickle εισαγωγής τουρσί
από django.db μοντέλα εισαγωγής
από djqmethod Διευθυντής εισαγωγής, querymethod
κλάση του Ομίλου (models.Model):
& Nbsp? Πέρασμα
κλάση Person (models.Model):
& Nbsp?. ΦΥΛΩΝ = dict (m = «Αρσενικό», στ = «Γυναίκα», u = «Απροσδιόριστο») των στοιχείων ()
& Nbsp? = Models.ForeignKey ομάδα (Ομάδα, related_name = «λαός»)
& Nbsp? Φύλο = models.CharField (MAX_LENGTH = 1, οι επιλογές = φύλα)
& Nbsp? Ηλικία = models.PositiveIntegerField ()
& Nbsp? # Σημείωση: θα πρέπει να δημιουργήσετε μια ρητή διευθυντής εδώ.
& Nbsp? Αντικείμενα = Manager ()
& Nbsp?querymethod
& Nbsp? Def ανηλίκων (ερώτημα):
& Nbsp? Query.filter επιστροφής (age__lt = 18)
& Nbsp?querymethod
& Nbsp? Def ενήλικες (ερώτημα):
& Nbsp? Query.filter επιστροφής (age__gte = 18)
# Οι `ανηλίκων ()` `και ενήλικες ()` μέθοδοι θα είναι διαθέσιμα στην ιστοσελίδα του διευθυντή:
διεκδικήσει isinstance (Person.objects.minors (), models.query.QuerySet)
# Θα είναι διαθέσιμη στις επόμενες querysets:
διεκδικήσει isinstance (Person.objects.filter (gender = «m»). ανηλίκων (),
& Nbsp? Models.query.QuerySet)
# Θα είναι επίσης διαθέσιμα για τις σχέσεις, αν είχαν αναμιχθεί με το
# Προεπιλεγμένο διαχειριστή για το συγκεκριμένο μοντέλο:
ομάδα = Group.objects.all () [0]
διεκδικήσει isinstance (group.people.minors (), models.query.QuerySet)
# Οι QuerySets παράγονται είναι απολύτως ασφαλή τουρσί:
διεκδικήσει isinstance (pickle.loads (pickle.dumps (Person.objects.minors ())),
& Nbsp? Models.query.QuerySet)
Ένα σχέδιο δοκιμής βρίσκεται σε δοκιμαστική / παράδειγμα /? συμβουλευτείτε αυτό για μια πιο ολοκληρωμένη παράδειγμα.
installation
Pip εγκατάσταση Django-qmethod
Απαιτήσεις :
- Python
- Django
Τα σχόλια δεν βρέθηκε