成功登录后,我将页面重定向到另一个名为“feeds”的应用程序。但是 url 相应地改变了,但内容仍然显示相同的登录页面。
View .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')
网址.py
urlpatterns = [
url(r'^j$',join_views.register, name='register'),
url(r'',join_views.jlogin, name='login'),
]
主要网址.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')),
]
如果我这样使用它会加载“feeds”应用内容
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')),
]
为什么会发生这些?
请您参考如下方法:
这是因为这两行来自
urls.py
url(r'',include('join.urls',namespace='join')),
和加入/urls.py
url(r'',join_views.jlogin, name='login'),
两个空 正则表达式捕获所有网址。尝试任何其他 url,例如“/shmeeds/”,您将再次看到相同的页面:-)
要解决此问题,请将任何非空正则表达式添加到其中一个(或两个)url()。
