Django表单提交错误

Django表单提交错误,django,forms,Django,Forms,在Django中,我经常遇到表单提交的问题,令人沮丧的是,我不知道如何解释所发生的事情。基本上我有不同的页面,上面有表格提交。其中一些工作如下 localhost/page/formpage--> localhost/page/receivingpage 这正是我所期望的。其他时候,它会转到这样的页面 localhost/page/formpage--> localhost/page/formpage/recevingpage 屏幕上显示的是一个空白的表单页面,这不是我所期望的。

在Django中,我经常遇到表单提交的问题,令人沮丧的是,我不知道如何解释所发生的事情。基本上我有不同的页面,上面有表格提交。其中一些工作如下

localhost/page/formpage--> localhost/page/receivingpage
这正是我所期望的。其他时候,它会转到这样的页面

localhost/page/formpage--> localhost/page/formpage/recevingpage
屏幕上显示的是一个空白的表单页面,这不是我所期望的。我不知道如何解释这个,也不知道在我的代码中哪里可以找到错误。我想我不完全理解当我提交表单时会发生什么,在我按下“提交”后它是如何生成URL的

编辑:这是我的html表单:

<!DOCTYPE HTML>
<html>
<div>
<p>Entry Form</p>
<form action= "user" method="post" >
{% csrf_token %}
<p><label for="id_username">Username:</label>
    <input id="id_username" type="text" name="username"" /></p>
<p><label for="id_password">Password</label>
    <input type="password" name="password" id="id_password" /></p>
<input type="submit" value="Submit" />
</form>

</div>
</html>

参赛表格

{%csrf_令牌%} 用户名:
我建议使用
url
模板标记输入
action
。这样,您就可以确定表单的最终位置:

<form action="{% url 'user-url-name' %}" method="post">


url
标记将是一个绝对url。如果不这样做,您将根据用户在应用程序中提交表单的位置,最终得到一个相对的url,这在开发过程中可能会非常混乱,而且不完全正确。

使用
{%url%}
标记是正确的方法。您的问题也可以通过在
操作
属性中添加正斜杠
/
来解决,如下所示:

<form action="/user" method="post" >


希望这有帮助

很难猜出什么是错误的-你可以看到你是否缺少前缀
/
,在那里你有一个错误的调用你可以发布模板在
被定义的地方吗?有趣的。。。使用斜杠将我带到localhost/user,而不是我认为的localhost/formpage/user(将自身附加到发送页面的操作)。。。有没有一种方法可以使用相对路径,将动作附加到发送页面的URL上?我不明白你的意思,如果你使用斜杠,其余的将附加到根地址,如果你不使用斜杠,它将附加到当前地址(相对)无需担心,我不认为使用相对与绝对URL有多大的实用性,当我需要的时候,我会跨越相对的桥梁。我只需要为我需要的每个表单实例创建新页面。谢谢你的帮助。