注销时清除Django视图缓存

时间:2015-08-03 07:46:52

标签: django django-cache

我正在缓存视图,如下所示:

@cache_page(60 * 15)
def my_view(request):
    # Get results for request.user
    return HttpResponse(json.dumps(results), content_type="application/json", status=200)

如何在用户注销时清除此缓存?

1 个答案:

答案 0 :(得分:0)

您需要定义一个更好的缓存密钥,该密钥在用户上或仅在user.is_authenticated上进行更改。 如果您使用redis,也可以使用密钥前缀,因为redis允许删除所有使用特定前缀的密钥。

key = "result_{}".format(request.user.pk)
results = cache.get(key)
if not results:
    results = ...
    cache.set(key, results)
...