from django.utils.safestring import mark_safe
from django.utils.html import strip_tags
from forum.utils.html import sanitize_html
+from utils import PickledObjectField
class NodeContent(models.Model):
title = models.CharField(max_length=300)
def html(self):
return self.as_markdown()
+ @classmethod
+ def _as_markdown(cls, content, *extensions):
+ return mark_safe(sanitize_html(markdown.markdown(content, extensions=extensions)))
+
def as_markdown(self, *extensions):
- return mark_safe(sanitize_html(markdown.markdown(self.body, extensions=extensions)))
+ return self._as_markdown(self.body, *extensions)
@property
def headline(self):
tags = models.ManyToManyField('Tag', related_name='%(class)ss')
active_revision = models.OneToOneField('NodeRevision', related_name='active', null=True)
+ extra = PickledObjectField()
extra_ref = models.ForeignKey('Node', null=True)
extra_count = models.IntegerField(default=0)
return self.headline
@classmethod
- def cache_key(cls, pk):
- return '%s:node:%s' % (settings.APP_URL, pk)
+ def _generate_cache_key(cls, key, group="node"):
+ return super(Node, cls)._generate_cache_key(key, group)
@classmethod
def get_type(cls):