2010-11-22 32 views
5

của nó không khó để làm mất hiệu lực một template cache đặc biệt trong djangoDjango - hết hạn django template cache dựa trên các biến

def invalidate_cache_key(fragment_name, *variables): 
    args = md5_constructor(u':'.join([urlquote(var) for var in variables])) 
    cache_key = 'template.cache.%s.%s' % (fragment_name, args.hexdigest()) 
    cache.delete(cache_key) 

Tuy nhiên tôi có một tình huống mà tôi cần phải xóa tất cả các mảnh vỡ cache rằng đã có một biến số truyền cho họ. Ví dụ: xóa tất cả các đoạn được lưu trong bộ nhớ cache về thương hiệu ô tô 'Toyota'.

{% cache 100000 car_content car.brand %} 

Về cơ bản, có cách nào để nhận tất cả cache_keys dựa trên một bộ tiêu chí nhất định không? Tôi đã suy nghĩ nguy hiểm về việc thay đổi nguồn bộ nhớ cache nhưng tôi đã tự hỏi nếu có thể có một giải pháp tốt hơn cho vấn đề này.

Trả lời

0

Sử dụng một ngày trong khóa cache:

{% cache 100000 car_content car.brand car.brand.last_modified %} 

Bằng cách đó tất cả các mảnh được tạo ra mỗi lần thương hiệu bị sửa đổi.

Các vấn đề liên quan