エンドユーザーがトランザクション データをフィルタリングできるフォームを作成しようとしています。「支払い方法」のフィルターがあります。
For Example: credit card, cash, check etc.
何らかの理由で、結果がフィルタリングされません (何も表示されません)。フォームが利用可能な選択肢からフィルター値を変更することに気付きました。
For Example: the "cash" choice becomes [u'cash'].
フィルターに選択オプションを直接入力すると、機能します。
For Example: Transactions.objects.filter(payment_method__exact="cash")
これと関係があるかどうかはわかりません...どうすればフィルターを機能させることができますか?
モデル:
class QueryForm(forms.Form):
payment_method = forms.MultipleChoiceField(choices=PAYMENT_TYPE)
見る:
def findtransation(request):
qf = QueryForm()
if request.method == "POST":
qf = QueryForm(request.POST)
if qf.is_valid():
p = qf.cleaned_data['payment_method']
results = Transactions.objects.filter(payment_method__exact=p)
return render_to_response('testdb/results.html', {'results': results, 'query_form': qf,}, context_instance=RequestContext(request))
return render_to_response('testdb/results.html', {'query_form': qf,}, context_instance=RequestContext(request))