【发布时间】:2019-12-04 11:16:23
【问题描述】:
我想从 HTML 中的下拉列表中获取数据到 views.py 文件,以便我可以从我的数据库中获取我将从下拉列表中获取的数据的数据。
第一次尝试
错误:
Request Method: POST<br/>
Request URL: http://127.0.0.1:8000/admissions/<br/>
Django Version: 2.2.6<br/>
Exception Type: MultiValueDictKeyError<br/>
Exception Value:
'state_dropdown'
Exception Location: C:\django\lib\site-packages\django\utils\datastructures.py in __getitem__, line 80<br/>
Python Executable: C:\django\Scripts\python.exe<br/>
<br/>
提前谢谢..
forms.py
class state_form(Form):
state_choices = (
("Delhi", "Delhi"),
('west bengal', 'West Bengal'),
("Andhra Pradesh", "Andhra Pradesh"),
("Arunachal Pradesh", "Arunachal Pradesh"),
("Assam", "Assam"), ("Bihar", "Bihar"),
("Chhattisgarh", "Chhattisgarh"),
("Goa", "Goa"),
("Gujarat", "Gujarat"),
("Haryana", "Haryana"),
("Himachal Pradesh", "Himachal Pradesh"),
("Jharkhand", "Jharkhand"),
("Karnataka", "Karnataka"),
("Kerala", "Kerala"),
("Madhya Pradesh", "Madhya Pradesh"),
("Maharashtra", "Maharashtra"),
("Manipur", "Manipur"),
("Meghalaya", "Meghalaya"),
("Mizoram", "Mizoram"),
("Nagaland", "Nagaland"),
("Odisha", "Odisha"),
("Punjab", "Punjab"),
("Rajasthan", "Rajasthan"),
("Sikkim", "Sikkim"),
("Tamil Nadu", "Tamil Nadu"),
("Telangana", "Telangana"),
("Tripura", "Tripura"),
("Uttar Pradesh", "Uttar Pradesh"),
('Uttarakhand', 'Uttarakhand'),
)
state_name=forms.ChoiceField(choices=state_choices)
views.py
def admissions(request):
if request.method == "POST":
a = request.GET['state_dropdown']
print(str(a))
else:
context_dict = {}
return render( request, 'buddyscholarship_html/admissions.html',{})
HTML 代码
<form class="form-control mb-3" style="margin-top:500px;" method="post">
{% csrf_token %}
<select class="col-lg-7 mb-4 mb-lg-0" name="state_dropdown">
<option value="select your state">select your state</option>
<option value="Uttarakhand">Uttarakhand</option>
<option value="West Bengal">West Bengal</option>
<option value="Andhra Pradesh">Andhra Pradesh</option>
<option value="Arunachal Pradesh">Arunachal Pradesh</option>
<option value="Assam">Assam</option>
<option value="Bihar">Bihar</option>
<option value="Goa">Goa</option>
<option value="Gujarat">Gujarat</option>
<option value="Haryana">Haryana</option>
<option value="Himachal Pradesh">Himachal Pradesh</option>
<option value="Jharkhand">Jharkhand</option>
<option value="Karnataka">Karnataka</option>
<option value="Kerala">Kerala</option>
<option value="Madhya Pradesh">Madhya Pradesh</option>
<option value="Maharashtra">Maharashtra</option>
<option value="Manipur">Manipur</option>
<option value="Meghalaya">Meghalaya</option>
<option value="Mizoram">Mizoram</option>
<option value="Nagaland">Nagaland</option>
<option value="Odisha">Odisha</option>
<option value="Punjab">Punjab</option>
<option value="Rajasthan">Rajasthan</option>
<option value="Sikkim">Sikkim</option>
<option value="Tamil Nadu">Tamil Nadu</option>
<option value="Telangana">Telangana</option>
<option value="Tripura">Tripura</option>
<option value="Delhi">Delhi</option>
<option value="Uttar Pradesh">Uttar Pradesh</option>
</select>
<input type="submit" value="submit" class="btn btn-primary">Search college</input>
</form>
</section>
</div>
那我试过了:
views.py
def admissions(request):
if request.method == "POST":
a = request.GET.get('state_dropdown')
print(str(a))
else:
context_dict = {}
return render( request, 'buddyscholarship_html/admissions.html',{})
我遇到的错误
ValueError at /admissions/<br/>
The view buddyscholarship.views.admissions didn't return an HttpResponse object. It returned None instead.<br/>
Request Method: POST<br/>
Request URL: http://127.0.0.1:8000/admissions/<br/>
Django Version: 2.2.6<br/>
Exception Type: ValueError<br/>
Exception Value: <br/>
视图 buddyscholarship.views.admissions 未返回 HttpResponse 对象。而是返回 None。
【问题讨论】:
标签: django django-forms django-views