我有一个不同的GET和POST方法视图,我有一个包含2个相应URL链接的页面的模板
<!DOCTYPE html>
<html>
<head>
<script language="JavaScript" type="text/javascript">
function getsupport ( selectedtype )
{
document.create_station.supporttype.value = selectedtype ;
document.create_station.submit() ;
}
</script>
</head>
<body>
<h1> Hey {{ object.username }}! </h1>
<p><a href="{% url 'list_create_station' %}">View your stations</a> </p>
<form name="create_station" method="post" action="">
<input type="hidden" name="supporttype" />
<a href="{% url 'list_create_station' %}">Create a new Station</a>
</form>
</body>
</html>
我试图让第二个链接通过POST方法而不是GET,并在http://www.thesitewizard.com/archive/textsubmit.shtml
的代码中提供帮助但该链接仍然通过了GET,使用Chromium开发人员工具对其进行了验证。
我是新手,因此从字面上复制了引用中的代码。我理解零件和零件,所以请有人给出相应的答案。如果有人告诉我我在这里做错了什么,并向我解释我必须做出哪些改变,那将是可爱的。
答案 0 :(得分:4)
表格的代码应为:
<form name="create_station" method="post" action="{% url 'list_create_station' %}">
<input type="hidden" name="supporttype" />
<input type="submit" value="Create a new Station" />
</form>
您可以找到有关提交按钮和操作属性here的信息。
基本上,您需要submit
按钮才能提交表单,否则input
字段中的数据将不会发送到下一个视图。 action
属性指示应该处理表单的视图。如果action
为空,则您的表单将立即发送到您正在使用的同一视图,但使用表单中定义的method
。
答案 1 :(得分:1)
您还可以将代码编辑为类似于下面的代码。
<form class="success" id="form-id" action="{% url "formly_dt_page_create" pk=selected_survey.pk %}" method="post">
{% csrf_token %}
<a class="nav-link {% if page == selected_page %}active{% endif %}" onclick="document.getElementById('form-id').submit();">Add page</a>
</form>
您应该为表单指定一个ID,以便链接中的操作可以直接定位到表单。
例如,根据上面的示例,我给了id
id="form-id"
onclick="document.getElementById('form-id').submit();"
的格式,并将值传递给了动作sockstat -l | awk '{match($2,/[a-zA-Z]+/);$2=substr($2,RSTART,RLENGTH) FS substr($2,RSTART+RLENGTH)} 1'
。
我希望这会对某人有所帮助。