Как передать запрос в 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 в представлениях, таких как представления на основе функций.

в этом методе первым аргументом является запрос. только переименовать первый аргумент для запроса и его сделано

Другие вопросы по тегам