我已经看过几个关于如何从Django中的HTML选择标记中收集数据的文档,但没有一个解决了我的问题。我也试过这个Stackoverflow的答案django - collecting data from a HTML <select>
这是我的模板代码:
<form method = "post" action = "{% url 'index' %}">
{% csrf_token %}
<select name = "drop1" >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<select name = "drop2" >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<select name = "drop3" >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<select name = "drop4" >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<input type = "submit" value="Submit">
</form>
这是我的观点:
def index(request):
if request.method == ["POST"]:
a = request.POST['drop1']
b = request.POST['drop2']
c = request.POST['drop3']
d = request.POST['drop4']
# printing to check whether getting the selected values
print a, b, c, d
else:
context_dict = {}
return render(request, 'demo/dashboard.html', context_dict)
答案 0 :(得分:0)
request.method
不是一个数组,所以它永远不会等于一个
["POST"]
必须为"POST"
def index(request):
if request.method == "POST":
话虽如此,视图中的所有代码路径都必须返回一个响应,因此由于不清楚你想要做什么,你可以删除else语句并调整render的缩进在做了你正在做的任何事情之后回到同一页面。
context_dict = {}
return render(request, 'demo/dashboard.html', context_dict)