在Django中建立一个链接传递POST方法

时间:2015-05-14 12:48:48

标签: html django

我有一个不同的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开发人员工具对其进行了验证。

我是新手,因此从字面上复制了引用中的代码。我理解零件和零件,所以请有人给出相应的答案。如果有人告诉我我在这里做错了什么,并向我解释我必须做出哪些改变,那将是可爱的。

2 个答案:

答案 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'

我希望这会对某人有所帮助。