Django-qmethod je aplikace Django pro snadné definování operace na sbírkách Django modelů (to znamená, QuerySets a manažeři).
Jednoho dne, doufám, že něco takového je zahrnuto v Django jádru.
Použít
Základní použití je následující:
import cPickle as kyselou okurkou
od django.db modelů dovozních
od djqmethod import manager, querymethod
třída Group (models.Model):
& Nbsp; průchod
třída Person (models.Model):
& Nbsp;. Pohlaví = dict (m = 'Male', f = "Žena", u = "Nespecifikováno") položek ()
& Nbsp; skupina = models.ForeignKey (Group, related_name = "lidé")
& Nbsp; gender = models.CharField (MAX_LENGTH = 1, volby = pohlaví)
& Nbsp; věk = models.PositiveIntegerField ()
& Nbsp; # Poznámka: musíte vytvořit explicitní správce zde.
& Nbsp; objekty = Manager ()
& Nbsp;querymethod
& nbsp; def nezletilých (dotaz):
& Nbsp; návrat query.filter (age__lt = 18)
& Nbsp;querymethod
& nbsp; def dospělí (dotaz):
& Nbsp; návrat query.filter (age__gte = 18)
# Na `nezletilí ()` a `dospělí ()` metody budou k dispozici na správce:
tvrdit isinstance (Person.objects.minors (), models.query.QuerySet)
# Budou k dispozici v následujících querysets:
tvrdit isinstance (Person.objects.filter (pohlaví = 'm "). nezletilé (),
& Nbsp; models.query.QuerySet)
# Budou k dispozici také na vztahy, pokud byly smíchány do
# Default manager pro tento model:
group = Group.objects.all () [0]
tvrdit isinstance (group.people.minors (), models.query.QuerySet)
# K QuerySets vyráběné jsou zcela Solené bezpečné:
tvrdit isinstance (pickle.loads (pickle.dumps (Person.objects.minors ())),
& Nbsp; models.query.QuerySet)
Zkušební projekt se nachází v testu / příklad /; Informujte se v této komplexnější příklad.
Instalace
Pip nainstalovat Django-qmethod
Požadavky na :
- Python
- Django
Komentáře nebyl nalezen