我正在缓存视图,如下所示:
@cache_page(60 * 15)
def my_view(request):
# Get results for request.user
return HttpResponse(json.dumps(results), content_type="application/json", status=200)
如何在用户注销时清除此缓存?
答案 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)
...