django-delegate

Software screenshot:
django-delegate
Podrobnosti Software:
Verze: 0.2.6
Datum uploadu: 15 Apr 15
Vývojka: Alexander Bohn
Licence: Volný
Popularita: 8

Rating: 2.0/5 (Total Votes: 1)

Django-delegát je aplikace Django se automaticky dostáváte CHAINABLE MANAGER / QUERYSET delegát metody.
Za normálních okolností, vymezením metod manager, Django můžete to udělat:
>>> SomeModel.objects.custom_query ()
... Ale to nebude vám to udělat:
>>> SomeModel.objects.custom_query (). Another_custom_query ()
... Pokud kopírovat vaše metody a definovat redundantní queryset podtřídy ... až do teď.
S DelegateManager adelegate, můžete napsat udržovatelný logiku zakázku dotazu s volným řetězení. namísto definování metod Manager, definovat metody queryset, zdobit ty, které chcete přenést, a dvouřádkový DelegateManager podtřídy určující queryset. ET VIOLA. Stejně tak:
od delegáta importu DelegateManager, delegovat
třída CustomQuerySet (models.query.QuerySet):
& Nbsp;delegate
& Nbsp; def qs_method (self, some_value):
& Nbsp; návrat self.filter (some_param__icontains = some_value)
& Nbsp; def dont_delegate_me (self):
& Nbsp; návrat self.filter (some_other_param = "něco jiného")
třída CustomManager (DelegateManager):
& Nbsp; __ queryset__ = CustomQuerySet
třída SomeModel (models.Model):
& Nbsp; objekty = CustomManager ()
# To bude fungovat:
SomeModel.objects.qs_method ("yo Dogg")
# To bude také fungovat:
SomeModel.objects.qs_method ("yo Dogg"). Qs_method ("Slyšel jsem, že se vám líbí queryset metoda delegace")
Chcete-li automaticky delegovat všechny metody v QuerySet, můžete vytvořit podtřídu DelegateQuerySet. Tyto dvě podtřídy QuerySet fungovat stejně:
od delegáta importu DelegateQuerySet, delegovat
třída ManualDelegator (models.query.QuerySet):
& Nbsp;delegate
& Nbsp; def qs_method (self):
& Nbsp; # ...
třída AutomaticDelegator (DelegateQuerySet):
& Nbsp; def qs_method (self):
& Nbsp; # ...
Můžete také použítdelegate dekoratér přímo na třídě - to vám umožní delegovat všechny metody třídy, aniž by se narušit jeho dědictví řetězce. Tento příklad funguje stejně na předchozí dva:
od delegáta dovozu delegáta
delegate
třída CustomQuerySet (models.query.QuerySet):
& Nbsp; def qs_method (self, some_value):
& Nbsp; návrat self.filter(some_param__icontains=some_value)

Requirements:

  • Python
  • Django

Ostatní software developer Alexander Bohn

hdf5-django
hdf5-django

20 Feb 15

dwight
dwight

14 Apr 15

h5dj
h5dj

20 Feb 15

Komentáře k django-delegate

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!