我已经搜索了类似问题和问题的答案 . 我希望在通过django-allauth视图进行身份验证后显示主页 . 但是为什么在使用@login_required装饰时我有太多登录重定向?“你能解释一下吗?原因和重定向循环的解决方案?重定向循环的代码是HTTP / 1.1''302 .
我从Django文档中查了一下
@login_required装饰器执行以下操作:
-
如果用户未登录,则重定向到/ accounts / login /,将查询字符串中的当前绝对URL作为下一个传递,例如:/ accounts / login /?next = / polls / 3 / .
-
如果用户已登录,请正常执行视图 . 然后,视图代码可以假定用户已登录 .
我希望经过身份验证的用户可以转到主页,同时将未登录的用户重定向到帐户/登录页面 .
我的settings.py的一部分:
LOGIN_URL='/accounts/login/'
LOGIN_REDIRECT_URL='/'
我的views.py:
from django.shortcuts import render
from django.template import RequestContext
from django.contrib.auth.decorators import login_required
# Create your views here.
@login_required
def home(request):
context={}
template='home.html'
return render(request, template,context)
我的urls.py:
from django.conf import settings
from django.conf.urls.static import static
from django.conf.urls import url, include
from django.contrib import admin
from profiles import views as profiles_views
urlpatterns=[
url(r'^admin/',admin.site.urls),
url(r'$',profiles_views.home,name='home'),
url(r'^accounts/',include('allauth.urls')),
1 回答
问题出在你的urls.py中 .
你没有把 "^" 标记为行的开头 .
尝试,