重定向example.com网站用户到example.com/#/登录

2024-09-29 17:15:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个使用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())

Tags: 项目djangopycore应用程序url处理程序index
3条回答

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应用程序在两个不同的端口上运行,例如:

  • Django在端口8000
  • 端口上的角度1000

因此,如果您给出/#/login,它将重定向到Django端口(8000/#/login)。你知道吗

那你为什么不给出完整的URLwww.example.com/#/login?你知道吗

相关问题 更多 >

    热门问题