django-qmethod este o aplicatie Django pentru definirea ușor operațiunile pe Colectiile de modele de Django (care este, QuerySets și administratorii).
Într-o zi, sper așa ceva este inclus în Django miez.
Utilizare
Utilizarea de bază este următoarea:
cPickle import ca murătură
din modelele django.db de import
de la Manager de import djqmethod, querymethod
clasă Group (models.Model):
& Nbsp; adversari
Persoana de clasă (models.Model):
& Nbsp;. Genuri = dict (m = 'B', f = 'Femeie', u = 'studii') articole ()
& Nbsp; grupă = models.ForeignKey (Group, related_name = 'persoane')
& Nbsp; de gen = models.CharField (MAX_LENGTH = 1, alegeri = sexe)
& Nbsp; vârstă = models.PositiveIntegerField ()
& Nbsp; # Notă: aveți nevoie pentru a crea un manager explicit aici.
& Nbsp; obiecte = Manager de ()
& Nbsp;querymethod
& nbsp; def minori (interogare):
& Nbsp; query.filter retur (age__lt = 18)
& Nbsp;querymethod
& nbsp; def adulți (interogare):
& Nbsp; query.filter retur (age__gte = 18)
# În `minorilor ()` si `adulților ()` metode vor fi disponibile pe administratorul:
afirma isinstance (Person.objects.minors (), models.query.QuerySet)
# Vor fi disponibile pe querysets ulterioare:
afirma isinstance (Person.objects.filter (gen = 'm'). minori (),
& Nbsp; models.query.QuerySet)
# Ei vor fi, de asemenea disponibile pe relații, în cazul în care s-au amestecat în la
# Manager de implicit pentru acest model:
Grup = Group.objects.all () [0]
afirma isinstance (group.people.minors (), models.query.QuerySet)
# De QuerySets produse sunt complet-marinate în condiții de siguranță:
afirma isinstance (pickle.loads (pickle.dumps (Person.objects.minors ())),
& Nbsp; models.query.QuerySet)
Un proiect de testare este situat în testul / exemplu /; consulta acest lucru pentru un exemplu mai cuprinzător.
Instalare
Pip instala django-qmethod
Cerințe :
- Python
- Django
Comentariile nu a fost găsit