이론상으로 그렇습니다. 먼저 this snippet of code 수행 할 수 있습니다 장고에서 사용하는 것과 같은 패턴의 템플릿 캐시 키를 만들어야합니다 :
from django.utils.hashcompat import md5_constructor
from django.utils.http import urlquote
def template_cache_key(fragment_name, *vary_on):
"""Builds a cache key for a template fragment.
This is shamelessly stolen from Django core.
"""
base_cache_key = "template.cache.%s" % fragment_name
args = md5_constructor(u":".join([urlquote(var) for var in vary_on]))
return "%s.%s" % (base_cache_key, args.hexdigest())
당신은 다음을 변경할 수 cache.set(template_cache_key(sidebar), 'new content')
같은 일을 할 수 있습니다.
그러나 뷰에서이를 수행하는 것은보기 흉합니다. 모델 변경시 post-save signals을 설정하고 캐시 항목을 만료하는 것이 더 적합합니다.
위의 코드 단편은 장고 1.2 이하 버전에서 작동합니다. 장고 1.3+ 호환성에 대해 잘 모르겠습니다. django/templatetags/cache.py
에 최신 정보가 표시됩니다.
Django 1.7의 경우 django/core/cache/utils.py에는 사용 가능한 기능이 있습니다.
Django 1.7에서 작동하지 않습니다 ... –
@SimonSteinberger : 예, 약간 수정해야합니다. 여기에서 함수를 복사하거나 사용하십시오 : https://github.com/django/django/blob/master/django/core/cache/utils.py – mipadi
방금 알았습니다. 문서화 된 함수가 있습니다 : https ://docs.djangoproject.com/ko/dev/topics/cache/#django.core.cache.utils.make_template_fragment_key –