При использовании Redirect в django, декоратор Login required не работает

view.py

@login_required
def Loginup(request):

  if request.method == 'POST':
      regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
      email = request.POST.get('email')
      password = request.POST.get('password')
      bad_chars = "!#$%^&*()[]{'}-+?_=,<>/"
      parameters = [email, password]
      filtered_parameters = []
      for i in parameters:
          a = ''.join(c for c in i if c not in bad_chars)
          filtered_parameters.append(a)

      checking = Client.objects.all().filter(Email=filtered_parameters[0])

      checking1 = authenticate(request, Email=email, Password=password)
    
      pop = ([i for i in checking.iterator()])
    

    
      for enc in checking:
         value = D256(filtered_parameters[1], enc.Password)
         if value != False:
             for check in checking:
                 request.session['id'] = check.id
                 request.session['email'] = check.Email
                
                 # REDIRECT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                 response = redirect('/home/%s' % encrypt(check.id))

                 set_cookie(response, check.Name, check.Password)

                 response.set_cookie(
                    'echo-AI', [check.Email, check.Password])
                 return response
         else:
             messages.success(request, 'check the details')
             return redirect('login/')

return render(request, 'login.html')

setting.py:

LOGIN_URL = 'supers:login'

url.py(app):

from django.urls import path
from supers import views



app_name = 'supers'

urlpatterns = [
  path('', views.Index, name='index'),
  path('signup/', views.Signup, name='signup'),
  path('login/', views.Loginup,name='login'),


  path('home/<str:id>',views.Home,name='home'),]

url перед использованием @login required:

http://127.0.0.1:8000/home/Z0FBQUFBQmhFWFJBRVdnLWxUNHRKeFNhaWZPYi1oN3hQUVF5cE5CSTRIbTdMZkdUcXFlbFNYeFl0alB3ZGtvSFVKcDVDRnQ0UkRCdWxrMkFSVGxYUG5FVWF1V2t3MU5JdEE9PQ==

url после использования @login required:

http://127.0.0.1:8000/login/?login/=/home/Z0FBQUFBQmhFWFBNM2JWUXhIdzRwTWdWcDVUYUZMZ191WGg3OG5OUE9YaEFOaDdLeF9zR1FEODYtM3p0Zlh0VjlobWoyMmlycmphY0lXdDdGNDRYUEZtMVhkOHA1TXowc0E9PQ%253D%253D

так что я попробовал пример проекта : (он работает при использовании render)

def Login(request):
if request.method == 'POST':
    email = request.POST.get('email')
    password = request.POST.get('password')
    print('User1:::::::::::::::::::::::::::::::', email)
    print('User2:::::::::::::::::::::::::::::::', password)
    data = Client.objects.filter(Email=email, Password=password)
    if data:
        return render(request, 'home.html')
    return render(request, 'login.html')
return render(request, 'login.html')


@login_required
def Home(request):
   return render(request, 'home.html')

@csrf_exempt
def Logout(request):
   logout(request)
   return redirect('/')



@csrf_exempt
def Signup(request):
   if request.method == 'POST':
       email = request.POST.get('email')
       password = request.POST.get('password')
       data = Client()
       data.Email = email
       data.Password = password
       data.save()

       return render(request, 'login.html')
   return render(request, 'signup.html')

есть ли другой способ перенаправления url в django

Похоже, что ваше сообщение состоит в основном из кода; пожалуйста, добавьте немного больше деталей. Похоже, что ваше сообщение состоит в основном из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваше сообщение в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей.

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