在request.POST中访问dict中的列表

时间:2013-06-10 12:58:50

标签: django django-views

在我的html中,我动态生成具有相同名称的下拉选项

<form action="{% url manageCsv %}" method="post">
    {% csrf_token %}
    <p>
        <input type="hidden" name="doc_id" value="{{ doc_id }}">
        {% for column in file_columns %}
        Column {{ forloop.counter0|add:1 }}
        <select name="columns">
            <option value="blank"></option>
            {% for column_value in file_columns %}
            <option value="{{ column_value }}">{{ column_value }}</option>
            {% endfor %}
        </select>
        {% endfor %}
    </p>
    <p>
        <input type="submit" value="Submit" />
    </p>
</form>

更新 我的Views.py:

def manageCsv(request):
    if request.method == 'POST':
        file_id = request.POST['doc_id']
        csvColumns = request.POST['columns']

        print >> sys.stderr, csvColumns['columns']

        return HttpResponseRedirect(reverse('index'))

在我看来,当我打印我的请求时。我得到了我需要的所有东西:

 <QueryDict: {u'csrfmiddlewaretoken': [u'lGlxVmiYI9xFb5bV7cJPrP9GR0t0LYTi'], u'doc_id': [u'14'], u'columns': [u'Organisation', u'Sum of products']}>

但我面临的问题是,当我分配csvColumns = request.POST['columns']时,csvColumns会从列表中打印出 Sum of products而不是整个列表{{} 1}}

如何获取整个列表?我错过了什么?

对此的任何帮助都很棒

提前致谢

1 个答案:

答案 0 :(得分:0)

按照the docs

中的说明尝试这样做
csvColumns = request.POST.getlist('columns',None)

希望这有帮助!