首页 > 解决方案 > Django:用户登录后如何在所有页面上发送用户名

问题描述

这是视图中的登录方法:

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('forum')
        else:
            messages.info(request, 'Username or password is wrong!')
            return render(request, 'login.html')
    return render(request, 'login.html')

以下是我编写代码的方式: 在视图模块中:我已经注册了方法和登录方法,它们都可以正常工作。但是,我还有其他需要登录才能访问它们的方法,因为我一次只重定向一个页面,我无法在需要登录才能访问它们的页面之间获得相同的用户名。现在的问题是,如何通过保留登录名中的相同用户名来创建另一个处理来自论坛的数据的页面。PS:在论坛里,我可以得到用户名但是如何保持相同的用户名,是个问题谢谢:)

标签: django

解决方案


如果我理解了这个问题,你想user在登录后使用。

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('forum')
        else:
            messages.info(request, 'Username or password is wrong!')
            return render(request, 'login.html')
    return render(request, 'login.html')

def another_page(request, *args, **kwargs):
    user = request.user
    ... 

推荐阅读