前提・実現したいこと
djangoのwebアプリ開発で、同じページでselect検索を2つ実装したいです。
検索機能を利用してrequestでデータを2つ送信したつもりなのですが、データが返ってきません。
htmlでforループを回しているのですが空欄になっているのでデータの受け渡しが出来ていないのかと思います。
発生している問題・エラーメッセージ
エラーメッセージは表示されなく、空白になります
該当のソースコード
python
1views.py 2 3def DeviceSearch(request): 4 print("[request method]", request.method) 5 if request.method == "POST": 6 name1 = request.POST.get('phone_name_1') 7 name2 = request.POST.get('phone_name_2') 8 device_model_a = DeviceModel.objects.filter(name__exact=name1) 9 device_model_b = DeviceModel.objects.filter(name__exact=name2) 10 context = { 11 'device_models': (device_model_a, device_model_b) 12 } 13 else: 14 context = {'device_models': DeviceModel.objects.all()} 15 return render(request, 'device_list.html', context)
html
1<form method="POST"> 2 {% csrf_token %} 3 <div class="col-md-8"> 4 <select name="name1" class="browser-default custom-select custom-select-lg mb-3"> 5 <option selected disabled="true">Select iPhone</option> 6 {% for item in device_models %} 7 <option>{{ item.name }}</option> 8 {% endfor %} 9 </select> 10 </div> 11 12 <div class="col-md-8"> 13 <select name="name2" class="browser-default custom-select custom-select-lg mb-3"> 14 <option selected disabled="true">Select iPhone</option> 15 {% for item in device_models %} 16 <option>{{ item.name }}</option> 17 {% endfor %} 18 </select> 19 </div> 20 <br><br> 21 <div class="text-right"> 22 <input type="submit" class="btn btn-dark" value="比較する"> 23 </div> 24</form> 25 26<table class="table table-sm table-bordered"> 27 28 <thead> 29 <tr> 30 ...trの記述 31 </tr> 32 </thead> 33 34 {% for item in device_models %} 35 36 <tbody> 37 <tr> 38 <th scope="row">{{ item.name }}</th> 39 <td> 40 <div class="text-center">{{ item.cpu }}</div> 41 </td> 42 ...for文の続き 43 </tr> 44 </tbody> 45 {% endfor %} 46</table>
こちらのコードでの理想はdropdown形式の検索で name を2つ送信し、その name と一致している2つのモデルを device_list.html で使うことです。
試したこと
.name__exactを icontains に変えてみましたがこちらはエラーが出ました。
.元はdevice_model_a と device_model_b を別々で context に入れていたのを device_models に1つにまとめました。
(最初は {% for item in device_model_a %} と書いていたのでまとめましたが結果は変わりませんでした)
.formタグにvalueを持たせてみましたが変化はありませんでした。
その他沢山の記事を探しましたが、適切なものはありませんでした。
補足情報(FW/ツールのバージョンなど)
python 3.8
dajgno 3
あなたの回答
tips
プレビュー