成功登录后,我将页面重定向到另一个名为“feeds”的应用程序。但是网址已相应更改,但内容仍然显示相同的登录页面。
views.py
def jlogin(request):
if request.method == 'POST':
username = request.POST['uname']
password = request.POST['pword']
user = authenticate(username=username, password=password)
if user is not None:
login(request,user)
print(user)
return redirect('/feeds/')
else:
return render(request,'join/register.html')
else:
return render(request,'join/login.html')
urls.py
urlpatterns = [
url(r'^j$',join_views.register, name='register'),
url(r'',join_views.jlogin, name='login'),
]
main urls.py
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'',include('join.urls',namespace='join')),
url(r'feeds',include('feeds.urls',namespace='feeds')),
url(r'^discussion/', include('discussion.urls',namespace='discussion')),
]
如果我这样使用,则会加载“Feed”应用内容
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^login/',include('join.urls',namespace='join')),
url(r'',include('feeds.urls',namespace='feeds')),
url(r'^discussion/', include('discussion.urls',namespace='discussion')),
]
为什么会发生这种情况?
答案 0 :(得分:2)
这是因为来自
的这两行<强> urls.py 强>
url(r'',include('join.urls',namespace='join')),
和加入/ urls.py
url(r'',join_views.jlogin, name='login'),
两个空正则表达式捕获所有网址。尝试任何其他网址,例如&#34; / shmeeds /&#34;,您将再次看到相同的网页: - )
要解决此问题,请将任何非空正则表达式添加到这些url()
中的一个(或两个)。
答案 1 :(得分:1)
重定向不会从视图中呈现数据。您需要使用模板和上下文
呈现请求return redirect('/feeds/')
转到
return render(request, 'dir/template.html', {'context':value})