【问题标题】:How to pass user information to other page in Django 3.0?如何将用户信息传递到 Django 3.0 中的其他页面?
【发布时间】:2019-12-23 07:29:41
【问题描述】:

我是新的 Django,我正在创建一个简单的登录页面,并希望在用户单击登录表单中的登录按钮后立即使用用户信息重定向到主页,用户应使用用户名重定向到主页

def login1(req):
     if req.method == 'POST':
        user = ppl.objects.filter(username = req.POST['text'])
        print(req.POST['text'])

        pwd = ppl.objects.filter(pwd = req.POST['pass'])
        print(req.POST['pass'])


       if user and pwd:
           return HttpResponseRedirect(reverse('home', {'u':user}))
       else:
           return render(req,'login.html',{'error':"username and password does not match"})

【问题讨论】:

    标签: django authentication


    【解决方案1】:
    def login(request):
      if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
    
        user = auth.authenticate(username=username, password=password)
    
        if user is not None:
          auth.login(request, user)
          return redirect('home')
        else:
          return redirect('login')
      else:
        return render(request, 'login.html')
    

    在您的主页模板或任何其他模板中,您可以调用{{ request.user.username }} 来查看当前登录的用户

    【讨论】:

    • 我在这里使用自定义模型,所以身份验证可以工作吗?
    • 用户返回“无”。我认为 django 正在考虑用户模型,但目前我正在使用名为“ppl”的模型
    • 如果您定义了自定义用户模型,您应该在设置文件中提及它。 AUTH_USER_MODEL = 'your_app.YourCustomUser'
    • 哦,告诉我该怎么做?
    • 在您的设置文件中添加我上面提到的内容,指向您的自定义用户模型
    猜你喜欢
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 2011-01-16
    • 2013-12-15
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    相关资源
    最近更新 更多