Я пытаюсь сделать функцию "запомнить меня" на странице входа в систему, используя встроенный в django auth view

from django.contrib.auth.views import LoginView из django.contrib.auth.forms import AuthenticationForm

class MyLoginView(LoginView): def get_form_kwargs(self): kwargs = super().get_form_kwargs() kwargs['request'] = self.request # print(self.get_initial(),'--------1') return kwargs

def get_form_class(self):
    if self.request.POST:
        if self.request.POST.get('remember'):
            self.request.session['usernameS'] = self.request.POST['username']
            self.request.session['passwordS'] = self.request.POST['password']
            self.request.session['remember'] = True
    self.initial = {
        'username':self.request.session.get('usernameS'),
        'password':self.request.session.get('passwordS'),
        'remember':self.request.session.get('remember')
        }
    print(self.initial)
    return self.authentication_form or self.form_class

Но всякий раз, когда я выхожу из системы, он не показывает начальные значения##

Он показывает None, потому что вы инициализировали вашу форму, где начальными значениями являются сами None, чтобы исправить это, просто сделайте небольшое изменение в вашем self.initial словаре

self.initial = {
    'username':self.request.session.get('usernameS') or '',
    'password':self.request.session.get('passwordS') or '',
    'remember':self.request.session.get('remember') or False,
} 
Вернуться на верх