在djang中获取登录用户的用户名

2024-05-06 03:57:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django新手,我只想找到一种方法来获取登录用户的用户名,并使用它来获取用户的板。我可能已经做了错误的模型添加另一个用户模型,但我想一些帮助,以获得用户的用户名。以下是我的视图文件:

    from django.shortcuts import render
from django.urls import reverse
from django.http import HttpResponseRedirect
from django.contrib.auth import authenticate,login
from django.contrib.auth.models import User
from .models import board_member,user
# Create your views here.

def index(request):
# Login form submitted?
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        if username and password:
            user = authenticate(username=username, password=password)
            # Login succeeded
            if user is not None:
                login(request, user)
                return HttpResponseRedirect(reverse('login_success'))
        # Login failed
        return HttpResponseRedirect(reverse('login_fail'))
    return render(request, 'Boards/login.html')

def login_success(request):
    return render(request, 'Boards/Homepage.html')

def getboards(request):
    username = request.user.get_username()
    boards = []
    for Memberships in board_member.objects.all():
        if username == Memberships.user.username:
            boards.append(Memberships.board)
    return render(request, 'Boards/Homepage.html', {'boards': boards, 'username':username})

def login_fail(request):
    return render(request, 'login_fail.html')

这是我的模型文件:

^{pr2}$

Tags: django用户fromimportreturnifrequestdef
2条回答

首先需要实现django custom user model并添加额外的字段boards
在视图后,你可以得到所有的板

request.user.boards.all()

通常要获取登录用户的用户名

username = request.user.username. 在视图本身内。在

但是我不知道你为什么要创建另一个用户模型。我想您是在尝试扩展现有的auth用户模型。在

相关问题 更多 >