django-delegate

Software screenshot:
django-delegate
Software informatie:
Versie: 0.2.6
Upload datum: 15 Apr 15
Ontwikkelaar: Alexander Bohn
Licentie: Gratis
Populariteit: 8

Rating: 2.0/5 (Total Votes: 1)

django-afgevaardigde is een Django app om automatisch schakelbare MANAGER / queryset DELEGATE METHODEN.
Normaal gesproken, door het definiëren van manager methoden, Django kunt u dit doen:
>>> SomeModel.objects.custom_query ()
... Maar het zal je niet laten dit te doen:
>>> SomeModel.objects.custom_query (). Another_custom_query ()
... Tenzij u dupliceren uw methoden en definieer een redundante queryset subklasse ... tot nu toe.
Met DelegateManager endelegate, kunt u onderhoudbaar maat-query-logica te schrijven met gratis chaining. in plaats van het definiëren manager methoden, je queryset methoden te definiëren, te versieren die u wilt delegeren, en een twee-lijn DelegateManager subklasse het opgeven van de queryset. ET VIOLA. Als volgt:
van afgevaardigde import DelegateManager, delegeren
klasse CustomQuerySet (models.query.QuerySet):
& Nbsp;delegate
& Nbsp; def qs_method (zelf, some_value):
& Nbsp; return self.filter (some_param__icontains = some_value)
& Nbsp; def dont_delegate_me (zelf):
& Nbsp; return self.filter (some_other_param = "iets anders")
klasse CustomManager (DelegateManager):
& Nbsp; __ queryset__ = CustomQuerySet
klasse SomeModel (models.Model):
& Nbsp; objecten = CustomManager ()
# Dit zal werken:
SomeModel.objects.qs_method ('yo dogg')
# Dit zal ook werken:
SomeModel.objects.qs_method ('yo dogg'). Qs_method ('Ik heb gehoord dat je queryset methode delegatie')
Als u alle van de methoden in een QuerySet automatisch delegeren, kunt u een subklasse van DelegateQuerySet creëren. Deze twee QuerySet subklassen werkt identiek:
van afgevaardigde import DelegateQuerySet, delegeren
klasse ManualDelegator (models.query.QuerySet):
& Nbsp;delegate
& Nbsp; def qs_method (zelf):
& Nbsp; # ...
klasse AutomaticDelegator (DelegateQuerySet):
& Nbsp; def qs_method (zelf):
& Nbsp; # ...
U kunt dedelegate decorateur ook rechtstreeks van toepassing zijn op een klasse - dit laat u toe om alle methoden in een klasse delegeren zonder verstoring van zijn erfdeel keten. Dit voorbeeld werkt identiek aan de vorige twee:
van afgevaardigde import afgevaardigde
delegate
klasse CustomQuerySet (models.query.QuerySet):
& Nbsp; def qs_method (zelf, some_value):
& Nbsp; return self.filter(some_param__icontains=some_value)

Requirements:

  • Python
  • Django

Andere software van ontwikkelaar Alexander Bohn

hdf5-django
hdf5-django

20 Feb 15

h5dj
h5dj

20 Feb 15

Reacties op django-delegate

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!