Django url解析错误

Django url解析错误,django,django-urls,Django,Django Urls,嗯, 我有两种不同的观点,都是在项目现场范围内 url.py url(r'^accounts/login/$', 'taxo.views.login'), url(r'^accounts/invalid/$', 'taxo.views.invalid'), ... taxo/views.py def login(request): c = {} c.update(csrf(request)) return render_to_response('login.html',

嗯, 我有两种不同的观点,都是在项目现场范围内

url.py

url(r'^accounts/login/$', 'taxo.views.login'),
url(r'^accounts/invalid/$', 'taxo.views.invalid'),
...
taxo/views.py

def login(request):
    c = {}
    c.update(csrf(request))
    return render_to_response('login.html', c)
def invalid(request):
    return render_to_response('invalid.html',{'title':'invalid'})
模板/login.html

<form action="/accounts/auth/" method="post">{% csrf_token %}
   <label for="username">User name</label>
   <input type="text" name="username" value="" id="username">
   <label for="password">Password</label>
   <input type="password" name="password" value="" id="password">
   <input type="submit" value="login" />
</form>
Django将请求的url解析为相对于当前页面的url。当我用
{%url%}
标记替换操作时。我在/accounts/invalid/处收到一个NoReverseMatch错误

如何正确地执行此操作?

原因如下:

Request URL: http://127.0.0.1:8000/accounts/invalid/accounts/login/
正则表达式末尾的$表示斜杠后面没有任何内容:

url(r'^accounts/login/$', 'taxo.views.login', name='login'),
url(r'^accounts/invalid/$', 'taxo.views.invalid', name='invalid'),
因此,您可以使用以下URL:

http://127.0.0.1:8000/accounts/login/
http://127.0.0.1:8000/accounts/invalid/
编辑: 为什么模板重定向中的一个URL以斜杠开头,而另一个URL没有斜杠?试试这个:

<form style="float: right" action="{% url 'login' %}" method="post">

试试这个:

<form style="float: right" action="/accounts/login/" method="post">
  {% csrf_token %}
  {{form}}
  <input type="submit" value="Login" class="search"/>
</form>

{%csrf_令牌%}
{{form}}

我尝试时,您似乎将两个url端点合并为一个url。我得到了NoReverseMatch异常:未找到参数为“()”且关键字参数为“{}”的“/accounts/login/”的反向。尝试了0个模式:[]注释无法显示代码,因此我编辑了答案。检查url.py和template中的更改-它更优雅。我确实检查了,但在/accounts/invalid/Reverse处找到了“/accounts/login/”的-NoReverseMatch,但没有找到参数“()”和关键字参数“{}”。0个模式已尝试:[]而不是。
<form style="float: right" action="{% url 'login' %}" method="post">
<form style="float: right" action="/accounts/login/" method="post">
  {% csrf_token %}
  {{form}}
  <input type="submit" value="Login" class="search"/>
</form>