Аутентификация пользователя, если он присутствует в группе

Я хочу аутентифицировать пользователя только если он присутствует в определенной группе. Может кто-нибудь подсказать мне, как я могу это сделать, пожалуйста!

Я делаю это для добавления пользователя в группу, когда пользователь регистрируется, но он показывает мне ошибку ( AttributeError at /stusignup/ 'NoneType' объект не имеет атрибута 'groups' )

 def stusignup(request):
    if request.method == "POST":
       name = request.POST['name']
       email = request.POST['email']
       pass1 = request.POST['password1']
       pass2 = request.POST['password2']

       if not pass1 == pass2:
           messages.error(request,"Please enter same password!")
       else:
           myuser = 
           User.objects.create_user(username=name,password=pass1,email=email)
        
    
           myuser.name = name
           myuser.email = email
           myuser.password = pass1
           stuser = myuser.save()

           group = Group.objects.get(name='Student')
           stuser.groups.add(group)

           return redirect('studentloginpage')

return render(request,'stusignup.html')     

views.py (Я пробовал это, но даже если пользователь присутствует в группе, он переходит к части else{ return httpresponse..... } )

 def stuloginpage(request):
    if request.method == 'POST':
    user_email = request.POST['email']
    pass1 = request.POST['password']
    user = User.objects.get(email=user_email,password=pass1)

    if user.groups.filter(name = 'Student').exists():
        if user is not None:
            login(request,user)
            return redirect('homepage')
            #messages.success(request,'Login Succcessful')

        else:
            messages.info(request, "Username OR Password is INCORRECT")
    else:
        return HttpResponse("You aren't a Student !")

Я также попробовал следующее

 def is_student(user):
   return user.groups.filter(name='Student')  

 @user_passes_test(is_student)

Мне нужна помощь в добавлении пользователя в группу во время регистрации, а затем перед входом в систему проверить, находится ли пользователь в определенной группе!

Вернуться на верх