我需要通过下拉菜单和“提交”按钮向视图函数提交字符串。
在我的模板中,我有:
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中没有其他内容。
有什么想法吗?
答案 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>