これはdjango-filterアプリ固有のゲストです。
条件に従ってクエリするフィルターの条件を導入しようとした人はいますか?
例を挙げましょう:
Product
モデルがあるとします。name
およびに従ってフィルタリングできますprice
。
デフォルトのdjango-filter
動作では、より多くのフィルターを使用してそれらを連鎖させると、AND
ステートメントを使用してデータをフィルター処理します (検索を絞り込みます)。
この動作を変更して ChoiceFilter を追加したいと思いAND
ますOR
。この時点から、フィルターはユーザーが選択したものに従って機能するはずです。
例えば。ユーザーが の製品をクエリした場合、name__startswith="Juice"
OR
price__lte=10.00
名前が で始まるすべての製品とJuice
、価格が より下の製品が一覧表示されます10.00
。
Django-filter
docs は、フィルターが引数を取ることができると言います:
action
An optional callable that tells the filter how to handle the queryset. It recieves a
QuerySet and the value to filter on and should return a Queryset that is filtered
appropriately.
これは私が探しているもののようですが、ドキュメントにはそれ以上の説明がありません。提案してください?
@編集:
これはviews.py
次のとおりです。
def product_list(request):
f = ProductFilter(request.GET, queryset=Product.objects.all())
return render_to_response('my_app/template.html', {'filter': f})