Python 如何将访问者重定向到登录页面?

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

在我的主要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()

编辑:

我试过以下方法

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