在Django中的自定义AuthenticationForm中使用session.set_expiry()



我试图在登录时设置记住我,并使用LoginView作为视图。是否可以在自定义AuthenticationForm中设置session.set_expiry(0(?

class CustomAuthenticationForm(AuthenticationForm):
username = forms.CharField();
password = forms.CharField(),
remember_me = forms.BooleanField(widget=forms.CheckboxInput(),
label='Remember me')
def clean_remember_me(self):
if not self.cleaned_data['remember_me']:
set expiry immediately <-- here

SESSION_EXPIRE_AT_BROWSER_CLOSE可能可用,但在这种情况下我可以使用SESSION.get_expiry(0(吗?

我怎么能不写自定义视图呢?

我认为您可以这样做,因为请求从视图传递到表单:

def clean_remember_me(self):
if not self.cleaned_data['remember_me']:
self.request.session.set_expiry(0)
...

最新更新