2017-11-26 5 views
0

私はPythonとDjangoを初めて使用しています。私は書類には何も見つかりませんでしたので、ここに書かなければなりません。Djangoモデルリクエスト配列

私はこのような問題があります。

は、私はあなたが、それを作るのモデルを見つけることができる車のテーブルを持っています。年など。 通常、私はただCars.objects.filter(make = x、model = y、year = z)でリクエストします。

私は検索したいと思います。多くのパラメータがあり、何かを作ることが可能です Cars.objects.filter(array)

どのように私のデータを取得しています。私はAJAXから私のビュークラスに送る普通のポストフォームです。私は、ユーザーの要求で見つけることができる許可されたparamsのリストを持っています。私はテーブルビュー名と入力名のために異なる名前を持っていますが、私は準備された配列で必要なものはすべて持っています。それはユーザーの送信した車名Acuraを取って{'make':123}のようなものにすることができます。最後に私はdb {'make':123、 'model':321}と完全に互換性のある配列を持っています。この配列を使用してリクエストを行い、すべてのパラメータを手で書き込むことはできませんか?

+0

あなたはまだ検索フォームを作り、そのビューを書かれていますか?あなたの質問にそれを追加します、どのように配列でparamsを取得していますか? – Satendra

+1

あなたは検索パラメータの辞書を持っていますが、リストはありません。 '' make ':123、' model ':' abc '} 'はPythonの' dict'であり、配列ではありません(これはPythonでは 'list'と呼ばれます)。あなたが 'dict'を持っているかどうか知っていれば、' params'と言って、関数呼び出しで '** params'を渡すことは、dictの各キーをその値に設定して関数を呼び出すのと同じです:' Cars.objects .filter(** params) ' – dirkgroten

答えて

2

の引数は、この形式で保存されている場合:

args = [('make', 'x'),('model', 'y'),('year', 'z')] 

あなたが試すことができます。

arg_dict = dict(args) 
Cars.objects.filter(**arg_dict) 
関連する問題