【发布时间】:2015-07-22 14:05:18
【问题描述】:
好的, 我有两种不同的观点,都在项目站点范围内。
urls.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>
模板/invalid.html
<form style="float: right" action="accounts/login/" method="post">
{% csrf_token %}
{{form}}
<input type="submit" value="Login" class="search"/>
</form>
使用上面的代码,我得到了 Page not Found 错误
Page not found (404)
Request Method: POST
Request URL: http://127.0.0.1:8000/accounts/invalid/accounts/login/
Django 将请求的 url 解析为相对于当前页面的 url。当我用{% url %} 标记替换操作时。我在 /accounts/invalid/ 处遇到 NoReverseMatch 错误
我该如何正确地做到这一点?
【问题讨论】:
-
看起来你将两个 url 端点连接到 1 个 url
标签: django django-urls