django-delegate

ソフトウェアのスクリーンショット:
django-delegate
ソフトウェアの詳細:
バージョン: 0.2.6
日付のアップロード: 15 Apr 15
開発者: Alexander Bohn
ライセンス: 無料
人気: 8

Rating: 2.0/5 (Total Votes: 1)

ジャンゴ·デリゲートは、自動的にチェーン可能マネージャ/クエリセットのデリゲートメソッドを取得するためのDjangoのアプリです。
通常は、マネージャーのメソッドを定義することによって、Djangoはあなたがこれを行うことができます:
>>> SomeModel.objects.custom_query()
...しかし、それはあなたがこれを行うに進みません。
>>> SomeModel.objects.custom_query()。another_custom_query()
...あなたはあなたのメソッドを複製し、冗長なクエリセットサブクラスを定義する...今までない限り。
DelegateManagerと@Delegateを使用すると、無料の連鎖で保守したカスタムクエリのロジックを記述することができます。代わりにマネージャーのメソッドを定義するのではなく、あなたが委任したいのですが、それらを飾る、クエリセットメソッドを定義し、クエリセットを指定する2ラインDelegateManagerサブクラス。 ET VIOLA。そうように:
デリゲート輸入DelegateManagerから、デリゲート
クラスCustomQuerySet(models.query.QuerySet):
  @Delegate
 デフqs_method(自己、some_value):
 戻りself.filter(some_param__icontains = some_value)
 デフdont_delegate_me(自己):
 戻りself.filter(some_other_param =「他の何か」)
クラスCustomManager(DelegateManager):
  _ queryset__ = CustomQuerySet
クラスSomeModel(models.Model):
 オブジェクト= CustomManager()
#これは動作します:
SomeModel.objects.qs_method( 'よドッグ')
#これも動作します。
SomeModel.objects.qs_method( 'よドッグ')。qs_method(「私はクエリセットメソッドの委任ようにあなたを聞いた ')
自動的にクエリセット内のすべてのメソッドを委譲するには、DelegateQuerySetのサブクラスを作成することができます。これら二つのクエリセットサブクラスは同じように動作します。
デリゲート輸入DelegateQuerySetから、デリゲート
クラスManualDelegator(models.query.QuerySet):
  @Delegate
 デフqs_method(自己):
 #...
クラスAutomaticDelegator(DelegateQuerySet):
 デフqs_method(自己):
 #...
また、クラスに直接@Delegateデコレータを適用することができます - これは、その継承チェーンを中断することなく、クラスのすべてのメソッドを委譲することを可能にする。この例では、前の2つに同じように動作します:
デリゲート輸入デリゲートから
@Delegate
クラスCustomQuerySet(models.query.QuerySet):
 デフqs_method(自己、some_value):
 戻りself.filter(some_param__icontains=some_value)

Requirements:

  • Python
  • ジャンゴます。

開発者の他のソフトウェア Alexander Bohn

hdf5-django
hdf5-django

20 Feb 15

dwight
dwight

14 Apr 15

h5dj
h5dj

20 Feb 15

へのコメント django-delegate

コメントが見つかりません
コメントを追加
画像をオンにする!