django-qmethod ist ein Django-Applikation für die einfache Definition von Operationen auf Sammlungen von Django-Modelle (dh QuerySets und Manager).
Eines Tages, ich hoffe, so etwas ist in Django Kern enthalten.
Verwendung
Die grundsätzliche Verwendung ist wie folgt:
Import cPickle als Gurke
von django.db Importmodelle
von djqmethod Import Manager querymethod
Klasse Group (models.Model):
& Nbsp; Pass
class Person (models.Model):
. & Nbsp; Geschlechter = dict (m = 'Male', f = 'Female', u = "Keine Angabe") Produkte ()
& Nbsp; group = models.ForeignKey (Group, related_name = "Volk")
& Nbsp; gender = models.CharField (max_length = 1, Entscheidungen = Geschlechter)
& Nbsp; age = models.PositiveIntegerField ()
& Nbsp; # Hinweis: Sie eine explizite Manager hier benötigen.
& Nbsp; Objekte = Manager ()
& Nbsp;querymethod
& Nbsp; def Minderjährigen (Abfrage):
& Nbsp; Rück query.filter (age__lt = 18)
& Nbsp;querymethod
& Nbsp; def Erwachsene (Abfrage):
& Nbsp; Rück query.filter (age__gte = 18)
# Die `Minderjährigen ()` und `Erwachsene ()` Methoden werden auf dem Manager zur Verfügung stehen:
behaupten isinstance (Person.objects.minors (), models.query.QuerySet)
# Sie werden bei zukünftigen querysets verfügbar sein:
behaupten isinstance (Person.objects.filter (gender = 'm'). Minderjährige ()
& Nbsp; models.query.QuerySet)
# Sie werden auch über die Beziehungen zur Verfügung stehen, wenn sie sich an, um die gemischt
# Standardmanager für dieses Modell:
group = Group.objects.all () [0]
behaupten isinstance (group.people.minors (), models.query.QuerySet)
# Die produzierten QuerySets völlig Gurke sicher:
behaupten isinstance (pickle.loads (pickle.dumps (Person.objects.minors ())),
& Nbsp; models.query.QuerySet)
Ein Testprojekt wird in Test / Beispiel gelegen /; konsultieren Sie diese für ein umfassenderes Beispiel.
Installation
pip django-qmethod installieren
Anforderungen :
- Python
- Django
Kommentare nicht gefunden