Как автоматически войти в систему после регистрации в Django? - PullRequest
1 голос
/ 18 марта 2020

Итак, я пытаюсь позволить пользователю автоматически войти в систему, как только он / она регистрируется. Вот моя функция регистрации.

def register(response):
    if response.method == 'POST':
        form = RegisterForm(response.POST)
        if form.is_valid:
            form.save()

        return redirect('/main/inputuserinfo')
    else:
        form = RegisterForm()

    return render(response, 'register/register.html', {'form' : form}) 

Как я уже говорил, я хотел бы войти в систему пользователя сразу после того, как он / она зарегистрировался, а затем перенаправить его / ее в '/main/inputuserinfo'.
. Но я понятия не имею, как я могу его создать.
Я очень ценю вашу помощь. :)

Ответы [ 3 ]

1 голос
/ 18 марта 2020
from django.contrib.auth import login,authenticate

def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username,password=raw_password)
            login(request,user)
            return redirect(reverse('index'))
    else:
        form = SignUpForm()
    return render(request,'signup.html',{'form':form})

Вы можете сделать это, используя метод аутентификации и входа в систему

1 голос
/ 18 марта 2020
def register(response):
        if response.method == 'POST':
                form = RegisterForm(response.POST)
                if form.is_valid:
                form.save()
                request.session['user_id'] =   form.cleaned_data.get("id")
                 return redirect('/main/inputuserinfo')
        else:
               form = RegisterForm()

               return render(response, 'register/register.html', {'form' : form}) ```
1 голос
/ 18 марта 2020

Вы можете аутентифицировать только что зарегистрированного пользователя, как этот

from django.contrib.auth import login, authenticate

if response.method == 'POST':
        form = RegisterForm(response.POST)
        if form.is_valid:
            form.save()
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password1')
            user =  authenticate(request,username=username, password=password)
            if user:
                login(request, user)
                return redirect..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...