Django删除所有用户的所有cookie

时间:2015-05-26 16:58:36

标签: django cookies django-1.4

我有django视图设置Cookie ' no_show_dialog' 中的值,当用户点击'不要再提醒我&#39 ; 在模态对话框中。

现在我完全改变了该对话框,并希望为所有用户重置该cookie,因此他们必须至少再次查看一次。

我知道有一种方法可以在特定用户的视图中删除cookie:

response.delete_cookie('no_show_dialog')

但是如何循环所有用户并删除该Cookie一次?

2 个答案:

答案 0 :(得分:3)

你不能这样做。 Cookie存储在客户端上;只有当特定浏览器发出请求并收到响应时,您才能访问它们。

这里最好的办法是从现在开始只为cookie使用不同的名称。这将确保没有用户最初设置它。或者,您可以考虑将会话用于将来的设置。

答案 1 :(得分:0)

正如Daniel所说,由于存储在客户端,所以无法删除所有cookie。

在Django中,您可以为视图中的特定请求对象创建响应对象。这意味着您只能删除该特定请求的cookie,而不能删除Django服务器提供的所有请求。

在这里你可以做的是在set_cookie方法中使用max_age作为关键字参数设置cookie的到期时间例如:

response = HttpResponse('your response')
response.set_cookie('user_id', user_id, max_age=30)
return response

这将在每个客户端的指定时间之后使cookie到期。