【问题标题】:How to collect data from select tags into Django views如何从选择标签中收集数据到 Django 视图中
【发布时间】:2016-04-24 03:10:52
【问题描述】:

我看过一些关于如何从 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)

【问题讨论】:

    标签: django django-templates django-views


    【解决方案1】:

    request.method 不是一个数组,所以它永远不会等于一个

    ["POST"] 必须是"POST"

    def index(request):
        if request.method == "POST":
    

    话虽如此,视图中的所有代码路径都必须返回响应,因此由于不清楚你想在那里做什么,你可以删除else语句并调整render的缩进做完你想做的任何事情后返回到同一页面。

    context_dict = {}
    return render(request, 'demo/dashboard.html', context_dict)
    

    【讨论】:

    • 谢谢。问题已解决。犯了这么幼稚的错误:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 2013-10-28
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多