Changeset 42 for plesonet_contentareas/trunk/models.py
- Timestamp:
- 06/06/09 07:02:07 (3 years ago)
- Files:
-
- 1 modified
-
plesonet_contentareas/trunk/models.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
plesonet_contentareas/trunk/models.py
r1 r42 3 3 from django.conf import settings 4 4 from django.utils.translation import ugettext_lazy as _ 5 from django.core.cache import cache 6 7 CONTENT_AREA_CACHE_KEY = "contarea" 8 ALL_CONTENT_AREA_CACHE_TIMEOUT = 60 * 10 5 9 6 10 class PublishedContentAreasManager(models.Manager): 7 11 def get_query_set(self): 8 12 return super(PublishedContentAreasManager, self).get_query_set().filter(is_published = True) 9 13 14 def get_name(self, name): 15 result = cache.get(CONTENT_AREA_CACHE_KEY + name) 16 if result is None: 17 result = list(self.get_query_set().filter(name=name)) 18 cache.set(CONTENT_AREA_CACHE_KEY + name, result, ALL_CONTENT_AREA_CACHE_TIMEOUT) 19 return result 20 10 21 class ContentArea(models.Model): 11 22 EXISTING_NAMES = ( ('contacts_form', 'Contacts form'), … … 19 30 published = PublishedContentAreasManager() 20 31 32 def save(self, *args, **kwargs): 33 super(ContentArea, self).save(*args, **kwargs) 34 cache.delete(CONTENT_AREA_CACHE_KEY + self.name) 35 36 def delete(self): 37 super(ContentArea, self).delete() 38 cache.delete(CONTENT_AREA_CACHE_KEY + self.name) 39 21 40 class Meta: 22 41 db_table = 'plesonet_contentareas'

