При использовании 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
Похоже, что ваше сообщение состоит в основном из кода; пожалуйста, добавьте немного больше деталей. Похоже, что ваше сообщение состоит в основном из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваше сообщение в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей. Похоже, что ваш пост в основном состоит из кода; пожалуйста, добавьте еще несколько деталей.