【问题标题】:Using session.set_expiry() in custom AuthenticationForm in Django.在 Django 的自定义 AuthenticationForm 中使用 session.set_expiry()。
【发布时间】:2019-05-16 09:19:00
【问题描述】:

我正在尝试在登录时设置记住我并使用 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) 吗?

不写自定义视图怎么办?

【问题讨论】:

    标签: django session login


    【解决方案1】:

    我认为你可以像 request is passed to the form from view 那样做:

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

    【讨论】:

      猜你喜欢
      • 2021-09-01
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 2019-06-28
      • 2013-08-27
      • 2017-07-24
      • 2011-09-29
      • 1970-01-01
      相关资源
      最近更新 更多