django 127.0.0.1 将您重定向的次数过多

"GET /?next=/%3Fnext%3D/%253Fnext%253D/ HTTP/1.1" 302 0

solution reference

from django.contrib.auth.decorators import login_required

@login_required
def my_view(request):
    ...

@login_required官网解释:If the user isn’t logged in, redirect to settings.LOGIN_URL, passing the current absolute path in the query string
即将settings.LOGIN_URL设置为你的登陆页面地址

对于我的情况如下:
settings.py
LOGIN_URL = "/login/"
urls.py

url(r'^$', views.index, name="index"),
url(r'^login/$', views.user_login, name="login"),

views.py

@login_required
def index(request):
    return render(request, "index1.html")


def user_login(request):
    if request.method == "POST":
        # try:
        #     m = models.UserProfile.objects.get(email=request.POST['username'])
        # except Exception:
        #     print("username doesn't exist")
        #     return render(request, "login.html")
        username = request.POST["username"]
        password = request.POST["password"]
        user = authenticate(request, email=username, password=password)
        error_msg = "账号或密码错误,请重新输入"
        none_msg = "please input username and password"
        if user is not None:
            if user.is_active:
                login(request, user)
                # request.session['member_id'] = m.id
                return redirect("/")        # redirect to 127.0.0.1:8000/ 
            else:
                print(none_msg)
                return render(request, "login.html", {"error_msg": none_msg})
        else:
            print(error_msg)
            return render(request, "login.html", {"error_msg": error_msg})
    else:
        return render(request, "login.html")

转载于:https://www.cnblogs.com/vickey-wu/p/8807376.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值