Python Django中会话的特定值

Python Django中会话的特定值,python,django,session,Python,Django,Session,当访问者看到一个特定页面时,我会在我的网站上弹出一个时事通讯。我只想每两周展示一次。在文档中,我找到了关于会话和设置到期的信息 因此,我尝试了以下步骤(示例中使用5秒,而不是两周): 但问题是: 1-set_expiry仅在5秒不活动的情况下有效(在这种情况下,它意味着没有会话修改)。在我的情况下,我想禁用此行为 2-set_expiry清除会话的所有值。我希望它只清除通讯值 我找不到实现这一目标的方法。有合适的方法吗?谢谢你的帮助 set\u expiry处理整个会话的过期时间,而不仅仅是变量

当访问者看到一个特定页面时,我会在我的网站上弹出一个时事通讯。我只想每两周展示一次。在文档中,我找到了关于会话和设置到期的信息

因此,我尝试了以下步骤(示例中使用5秒,而不是两周):

但问题是:

1-set_expiry仅在5秒不活动的情况下有效(在这种情况下,它意味着没有会话修改)。在我的情况下,我想禁用此行为

2-set_expiry清除会话的所有值。我希望它只清除通讯值


我找不到实现这一目标的方法。有合适的方法吗?谢谢你的帮助

set\u expiry
处理整个会话的过期时间,而不仅仅是变量“newsletter”

在您的情况下,最好的做法可能是创建一个会话,确保该会话至少持续两周。因此,您应该将到期时间设置为至少两周。然后,您可以使用此会话完成所有类型的工作,包括时事通讯业务。处理请求时,请执行以下操作:

  • 如果会话没有“新闻稿”字段,请创建它并将其设置为
    datetime.now()
    。同时显示时事通讯弹出窗口
  • 如果它的时事通讯字段小于两周,则什么也不做
  • 如果新闻稿字段为两周或两周以上,请显示弹出窗口,然后再次将该字段设置为
    datetime.now()

谢谢。我可以这样做,但我的想法是不清除整个会议。。。我想我不会有任何其他的解决办法了!您是否能够找到任何解决方案,以便在特定的到期时间从会话中仅清除单个值?
def example(request):
    request.session['newsletter'] = 'test'
    request.session.set_expiry(5)