질문 요약) cache_page를 활용하여 뷰 캐싱을 했는 데, 해당 뷰에 대해 POST 요청이 올 때 관련 캐싱을 자동 삭제하고 싶으시다는 거죠?
장고 기본의 cache_page
장식자는 GET/HEAD 요청에 대해서 캐싱 로직을 동작시키며, 그 이외의 요청 (POST, PUT 등) 에 대해서는 특별한 처리를 하지 않습니다.
cache_page
장식자는 timeout 이 지난 후에 expire 되며, expire time 전에 캐싱을 삭제할려면 low level cache api로 cache key 문자열을 직접 조합하여 삭제하여야만 합니다.
cache_page
장식자는 내부적으로 CacheMiddleware
를 사용하며, CacheMiddleware
에 주요 로직들이 구현되어있습니다. 다음과 같이 CacheMiddleware
를 상속받아 POST 요청 시에 관련 캐시를 삭제토록 구현해볼 수 있습니다.
이제 expire timeout 전이라도 POST 요청 시에 관련 캐시가 자동 삭제가 됩니다. :-)
- [email protected]
- https://fb.com/groups/askdjango : 파이썬/장고 질문이여 오라 ~ ;)
- https://educast.com/course/web/ZU53 : 리액트와 함께 장고 시작하기 Complete