Python 如何将访问者重定向到登录页面?
在我的主要Django项目Python 如何将访问者重定向到登录页面?,python,django,Python,Django,在我的主要Django项目urls.py中有以下url处理程序: url(r'^$', 'core.views.generic.index') 我希望用户登录到登录页面,而不是像上面那样登录到索引页面 我在一个名为core的应用程序中有另一个urls.py,它将访问者发送到登录页面: url(r'^/login$', private.MeLogin.as_view()) 我如何将我的主应用中访问url(r'^$,…)的所有人发送到我的核心应用中的private.MeLogin.as_view
urls.py
中有以下url处理程序:
url(r'^$', 'core.views.generic.index')
我希望用户登录到登录页面,而不是像上面那样登录到索引页面
我在一个名为core
的应用程序中有另一个urls.py
,它将访问者发送到登录页面:
url(r'^/login$', private.MeLogin.as_view())
我如何将我的主应用中访问url(r'^$,…)
的所有人发送到我的核心应用中的private.MeLogin.as_view()
编辑:
我试过以下方法
def index(request):
return HttpResponseRedirect('/#/login')
但是我知道这个页面有一个重定向循环,需要登录时,您必须使用一个装饰器来指示:
from django.contrib.auth.decorators import login_required
@login_required
def index(request):
return render(request,'home.html')
在任何需要登录的视图中,只需使用它。解决这个问题的方法是使用decorator,在这种情况下需要登录。 这将使您重定向到登录视图。 如文件中所述 login_required()执行以下操作:
- 如果用户未登录,请重定向到settings.LOGIN\u URL,在查询字符串中传递当前绝对路径
- 如果用户已登录,则正常执行视图。查看代码可以自由假设用户已登录
您还可以自定义装饰程序,查看文档以了解更多信息。使用
url(r'^$',core.private.MeLogin.as_view())
有什么问题?当我更改到该语句时,我会看到一个带有标题Django REST framework的登录页面,而不是我的正常登录页面。我不知道为什么。是否可以将url重定向到/login?我认为如果可能的话,这将是最好的解决办法。这看起来是一个好办法。我已经尝试了@login_required(重定向_字段_name='',login_url='.#/login')def index(请求):返回render_to_response('html/index.html',locals(),context_instance=RequestContext(请求)),并将访问者发送到正确的地址。但他们得到了一个台面,“这个网页有一个重定向循环”。你知道我该如何解决这个问题吗?如果你使用的是基于类的视图,请将它们的.as\u view()
装饰成这些视图。至于重定向循环。。。你不是在试图装饰登录页面本身吗?
from django.contrib.auth.decorators import login_required
@login_required
def index(request):
index view code in here