как запомнить имя пользователя и пароль при входе в django, используя опцию Remember_me в django - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь реализовать запомнить меня при входе в систему. Я ввожу свое имя пользователя и пароль и устанавливаю флажок запомнить меня.Вход работает нормально, но когда я выхожу, имя пользователя и пароль не запоминаются.Я реализовал следующий код.Любые решения?

views.py

if request.method == 'POST':
        form = LoginForm(request.POST or None)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            remember_me = request.POST.get('remember_me')

            user = authenticate(request, username=username, password=password)
            if user and user.is_superuser:
                login(request, user)
                if not remember_me:
                    request.session.set_expiry(0)

                messages.success(request, 'logged in.')
                return redirect(redirect_url)
            else:
                messages.error(request, 'Invalid username or password')
    else:
        form = LoginForm()
    return render(request, '3home.html', {'form': form})

template

<form action="" method="post" class="form-signin">
      {% csrf_token %}
    <input type="text" class="form-control mb-2" name='username' placeholder="Username" required autofocus>
    <input type="password" class="form-control mb-2" name='password' placeholder="Password" required>
    <button class="btn btn-lg btn-primary btn-block mb-20" type="submit">Log in</button>
    <div class="checkbox float-left">
    <input type="checkbox"  name="remember_me" id="basic_checkbox_1" >
    <label for="basic_checkbox_1">Remember me</label>
    </div>

</form>

forms.py

class LoginForm(forms.Form):
    username = forms.CharField(max_length=100)
    password = forms.CharField(widget=forms.PasswordInput)
    remember_me = forms.BooleanField(required=False)

1 Ответ

0 голосов
/ 17 июня 2019

Вы устанавливаете сессию только для условия не помню, пробовали ли вы это

if remember_me:
  request.session.set_expiry(1209600)

вместо этого, хотя я не уверен, но вы можете попробовать это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...