如何从select标签收集数据到Django视图

时间:2016-01-18 20:17:50

标签: django django-templates django-views

我已经看过几个关于如何从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)

1 个答案:

答案 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)