Как передать запрос в Django URL
У меня есть этот URL: (Джанго 2.0)
re_path('auth/(?P<code_>[a-zA-Z0-9]{12})/(?P<email_>[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})/$', homePageView.autenticate, name='autenticate'),
в моих views.py:
class homePageView(TemplateView):
template_name = 'index.html'
def autenticate(self, email_, code_):
try:
user = Usuario.objects.get(email=email_,activated_code=code_)
code = user.two_factors_auth_code
if (not user.two_factors_auth) and (code == code_) and (len(code) == 12):
user.next_login = True
user.save()
return redirect('home')
except Usuario.DoesNotExist:
return redirect('home')
Я хотел бы войти в систему пользователя в моем методе аутентификации, но у меня нет параметра запроса в моей функции.
¿Как я могу преобразовать мою функцию аутентификации в эту другую?
class homePageView(TemplateView):
template_name = 'index.html'
def autenticate(self, request, email_, code_):
try:
user = Usuario.objects.get(email=email_,activated_code=code_)
code = user.two_factors_auth_code
if (not user.two_factors_auth) and (code == code_) and (len(code) == 12):
user.next_login = True
user.save()
####################
login(request,user)
####################
return redirect('home')
except Usuario.DoesNotExist:
return redirect('home')
1 ответ
Решение
Вы используете метод authenticate в представлениях, таких как представления на основе функций.
в этом методе первым аргументом является запрос. только переименовать первый аргумент для запроса и его сделано