Fetching contributors…
Cannot retrieve contributors at this time
48 lines (39 sloc) 1.8 KB
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
from django.core.cache import cache
from flatblocks.settings import CACHE_PREFIX
class FlatBlock(models.Model):
Think of a flatblock as a flatpage but for just part of a site. It's
basically a piece of content with a given name (slug) and an optional
title (header) which you can, for example, use in a sidebar of a website.
slug = models.CharField(max_length=255, unique=True,
help_text=_("A unique name used for reference in "
"the templates"))
header = models.CharField(blank=True, null=True, max_length=255,
help_text=_("An optional header for this "
content = models.TextField(verbose_name=_('Content'), blank=True,
# Helper attributes used if content should be evaluated in order to
# represent the original content.
raw_content = None
raw_header = None
def __str__(self):
return self.slug
def save(self, *args, **kwargs):
super(FlatBlock, self).save(*args, **kwargs)
# Now also invalidate the cache used in the templatetag
cache.delete('%s%s' % (CACHE_PREFIX, self.slug, ))
def delete(self, *args, **kwargs):
cache_key = '%s%s' % (CACHE_PREFIX, self.slug,)
super(FlatBlock, self).delete(*args, **kwargs)
class Meta:
verbose_name = _('Flat block')
verbose_name_plural = _('Flat blocks')