【发布时间】:2015-02-10 09:49:18
【问题描述】:
我是 Django 新手,正在尝试构建一个小项目;目前正在尝试理解 HttpResponseRedirect,在这种情况下不起作用。
这是我的意见.py
def user_login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user:
if user.is_active:
login(request, user)
#return index(request)
HttpResponseRedirect('/main/')
else:
render(request, 'main/login.html',{})
这是主应用程序中的 urls.py
urlpatterns = patterns('',
url(r'^$', views.index, name = 'index'),
# .....................
url(r'^login/$', views.user_login, name='login'),
url(r'^logout/$', views.user_logout, name='logout'),
)
这里是 login.html
<form id="login_form" method="post" action="/main/login/">
{% csrf_token %}
Username: <input type="text" name="username" value="" size="50" /><br />
Password: <input type="password" name="password" value="" size="50" /><br />
<input type="submit" value="submit" />
如果我在 login() 之后返回 index() 视图,一切正常,但是当我使用 HttpResponseRedirect 时,它不起作用,它成功登录但停留在登录页面上。即使我放了 HttpResponseRedirect('/asdf/'),它仍然存在而不会抛出它应该的错误,因为 url 中没有 asdf 路由。那么,有两个问题,1)为什么重定向不起作用? 2)为什么它甚至没有抛出错误?
干杯!
【问题讨论】:
-
请不要更改整个问题。您可以编辑问题并表明它已解决
标签: django