我在做一个使用Django和Angular的项目。我没有作为一个网页开发人员的背景,所以请尝试解释你的答案,让一个新手可以理解它。你知道吗
基本上,我想让登录页面成为默认页面,而不是索引页面。你知道吗
我目前在我的主要Django项目中有以下url处理程序网址.py地址:
url(r'^$', 'core.views.generic.index')
我还有另外一个网址.py在一个名为core的应用程序中,它将访问者发送到登录页面:
url(r'^/login$', private.MeLogin.as_view())
现在我希望登录页面变成默认页面,而不是索引页面。我该怎么做?你知道吗
我已尝试在核心应用程序中添加以下视图文件:
@login_required(redirect_field_name='', login_url='#/login')
def index(request):
return render_to_response('html/index.html', locals(), context_instance=RequestContext(request))
不幸的是我得到了这个信息
This webpage has a redirect loop
我不知道如何解决这个问题。基本上,我希望用户被重定向到登录页面,如果他们输入的任何网址是不是由其他网址处理程序处理。当他们成功登录时,会自动重定向到仪表板页面。你知道吗
编辑:
登录页面URL在核心urls.py
文件中处理,并指向与索引不同的视图。你知道吗
url(r'^/login$', private.MeLogin.as_view())
Web服务器(在本例中是Django)看不到
#
后面的片段。您正在从/
重定向到/
,从而创建重定向循环。你知道吗如果要重定向到Django登录url,需要
login_url='/login'
。你知道吗另外,您应该从regex
r'^/login$
中删除前导斜杠。你知道吗在
@login_required(redirect_field_name='', login_url='#/login')
删除redirect_field_name='',
这确实是不必要的,并确保login_url='#/login
中的#/login
与您的login_url='#/login
中的#/login
相同网址.py文件: 就像你知道吗视图.py你知道吗
@login_required(redirect_field_name='', login_url='accounts/login/')
作为 网址.py你知道吗
url(r'^accounts/login/', auth_views.login),
我假设Angular&Django应用程序在两个不同的端口上运行,例如:
8000
1000
因此,如果您给出
/#/login
,它将重定向到Django端口(8000/#/login
)。你知道吗那你为什么不给出完整的URL
www.example.com/#/login
?你知道吗相关问题 更多 >
编程相关推荐