2010-11-22 10 views
5

इसकी नहीं करने के लिए Django में एक विशेष टेम्पलेट कैश रद्द करने के लिएDjango - समय सीमा समाप्त हो चरों के आधार पर Django टेम्पलेट कैश

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) 

हालांकि मैं एक स्थिति है जहाँ मैं सभी संचित टुकड़े कि एक निश्चित चर पड़ा है हटाने की आवश्यकता है मुश्किल उन्हें पास कर दिया। उदाहरण के लिए, कार ब्रांड 'टोयोटा' के बारे में सभी कैश किए गए टुकड़े हटाएं।

{% cache 100000 car_content car.brand %} 

अनिवार्य रूप से वहाँ एक रास्ता कुछ खास शर्तों के सेट के आधार पर सभी cache_keys प्राप्त करने के लिए है? मैंने कैश स्रोत को बदलने के बारे में खतरनाक रूप से सोचा है, लेकिन मैं सोच रहा था कि इस समस्या का बेहतर समाधान हो सकता है या नहीं।

उत्तर

0

कैश कुंजी में एक तिथि का उपयोग करें:

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

इस तरह सभी टुकड़े हर बार ब्रांड संशोधित हो जाता बनाई गई हैं।

संबंधित मुद्दे