これはdjango-filterアプリ固有のゲストです。
条件に従ってクエリするフィルターの条件を導入しようとした人はいますか?
例を挙げましょう:
Productモデルがあるとします。nameおよびに従ってフィルタリングできますprice。
デフォルトのdjango-filter動作では、より多くのフィルターを使用してそれらを連鎖させると、ANDステートメントを使用してデータをフィルター処理します (検索を絞り込みます)。
この動作を変更して ChoiceFilter を追加したいと思いANDますOR。この時点から、フィルターはユーザーが選択したものに従って機能するはずです。
例えば。ユーザーが の製品をクエリした場合、name__startswith="Juice" OR price__lte=10.00名前が で始まるすべての製品とJuice、価格が より下の製品が一覧表示されます10.00。
Django-filterdocs は、フィルターが引数を取ることができると言います:
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})