簡體   English   中英

如何使 django 中的頁面緩存無效

[英]how can i invalidate page cache in django

如何使 django 中的頁面緩存無效。 我正在嘗試緩存一個頁面,該頁面顯示一個列表,該列表對於使用 django-rest-framework 的每個用戶都是唯一的。 當從 model 添加、更新、刪除另一個 object 時,我無法弄清楚如何使頁面緩存無效。

我願意使用外部 package 或信號。

我不知道@page_cache 使緩存無效的關鍵是什么

我曾嘗試使用 django-fancy-cache 但我得到一個錯誤

unsupported operand type(s) for +: 'float' and 'function'

我的緩存設置

CACHES = {
    'default': {
         'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
         'LOCATION': 'unique-snowflake',
     }
}

您可以將失效邏輯移動到模型中。 例如,為了在添加/更新 object 時使緩存無效,您可以覆蓋模型的保存方法。 例如:

def save(self, *args, **kwargs):
    cache.delete(`YOUR_CACHE_KEY`)
    super().save(*args, **kwargs)

刪除相同:

def delete(self, *args, **kwargs):
    cache.delete(`YOUR_CACHE_KEY`)
    super().delete(*args, **kwargs)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM