无法在视图函数中获取表单数据:Django

时间:2019-01-16 06:48:25

标签: python django post drop-down-menu

我需要通过下拉菜单和“提交”按钮向视图函数提交字符串。

在我的模板中,我有:

single()

在我的查看功能中,我有:

<form action="{% url 'exec_task' %}" method="post">
    {% csrf_token %}
    <select id="select_task" form="select_task" name="select_task">
        {% for task in available_tasks %}
          <option id="selected_task" value="{{ task }}">{{ task }}</option>
        {% endfor %}
    </select>
    <input class="button" type="submit" value="Run Selected Task">
</form>

print(task)总是以None的形式出现,当我尝试通过下一行的getattr调用它时会产生一个错误。

我已经阅读了所有关于此的问题和教程,但我不知道自己在做什么错,但是当我打印request.POST对象时,得到的只是csrf令牌。 QueryDict中没有其他内容。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如评论中所述,请删除

form="select_task"从选择标签。

因此,最终选择标记/ html是。

<form action="{% url 'exec_task' %}" method="post">
    {% csrf_token %}
    <select id="select_task" name="select_task">
        {% for task in available_tasks %}
          <option id="selected_task" value="{{ task }}">{{ task }}</option>
        {% endfor %}
    </select>
    <input class="button" type="submit" value="Run Selected Task">
</form>