GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

carltongibson

django-filter – ユーザの選択に基づいてDjango QuerySetsをフィルタリングするための一般的なシステム //django-filte..

投稿日:

ユーザの選択に基づいてDjango QuerySetsをフィルタリングするための一般的なシステム https: //django-filter.readthedocs.io/…

Djangoフィルタ

Django-filterは再利用可能なDjangoアプリケーションで、ユーザーはURLパラメータから動的なQuerySetフィルタを宣言的に追加できます。

ドキュメントの全文を読む

要件

  • Python :3.4,3.5、3.6
  • Django :1.11,2.0
  • DRF :3.7

Python 2.7またはDjango <1.11をサポートする必要がある場合は、バージョン1.1のリリースを使用してください。

インストール

pipを使ってインストールする:

pip install django-filter

次に、 INSTALLED_APPS 'django_filters'を追加します。

INSTALLED_APPS = [
    ...
    'django_filters',
]

使用法

Djangoフィルタは、Django管理者のlist_filterインタフェースと同様のインタフェースを生成するために使用できます。 DjangoのModelFormsに非常によく似たAPIを持っています。 たとえば、Productモデルを使用している場合は、コードとともにフィルタセットを使用できます。

import django_filters

class ProductFilter(django_filters.FilterSet):
    class Meta:
        model = Product
        fields = ['name', 'price', 'manufacturer']

そして、あなたの見解では、あなたはできます:

def product_list(request):
    filter = ProductFilter(request.GET, queryset=Product.objects.all())
    return render(request, 'my_app/template.html', {'filter': filter})

Django RESTフレームワークでの使用法

Django-filterは、Django REST Frameworkで使用するカスタムのFilterSetとフィルタバックエンドを提供します。

これを使用するには、インポートを調整してdjango_filters.rest_framework.FilterSetを使用します。

from django_filters import rest_framework as filters

class ProductFilter(filters.FilterSet):
    class Meta:
        model = Product
        fields = ('category', 'in_stock')

詳細については、 DRF統合ドキュメントを参照してください。

サポート

使用法や開発について質問がある場合は、 メーリングリストに参加することができます







-carltongibson

執筆者: