from django.template import TemplateDoesNotExist
from django.template import Context, RequestContext
from django.core.exceptions import ObjectDoesNotExist
from django.template import TemplateDoesNotExist
from django.template import Context, RequestContext
from django.core.exceptions import ObjectDoesNotExist
from UserDict import DictMixin
from templatetags.containers import ContainerNode
from django.template.loader_tags import ExtendsNode, ConstantIncludeNode, IncludeNode
from django.template.loader import get_template
from django.http import Http404, HttpResponse, HttpResponseServerError, HttpResponseRedirect
from django.core.servers.basehttp import FileWrapper
from UserDict import DictMixin
from templatetags.containers import ContainerNode
from django.template.loader_tags import ExtendsNode, ConstantIncludeNode, IncludeNode
from django.template.loader import get_template
from django.http import Http404, HttpResponse, HttpResponseServerError, HttpResponseRedirect
from django.core.servers.basehttp import FileWrapper
slug = models.SlugField()
def get_path(self, pathsep='/', field='slug'):
slug = models.SlugField()
def get_path(self, pathsep='/', field='slug'):
+ def save(self, force_insert=False, force_update=False):
+ if not hasattr(self, 'instance_type_ptr'):
+ self.instance_type = ContentType.objects.get_for_model(self.__class__)
+ super(InheritableTreeEntity, self).save(force_insert, force_update)
+
+ @property
+ def instance(self):
+ return self.instance_type.get_object_for_this_type(id=self.id)
+
- def save(self, force_insert=False, force_update=False):
- if not hasattr(self, 'instance_type_ptr'):
- self.instance_type = ContentType.objects.get_for_model(self.__class__)
- super(Node, self).save(force_insert, force_update)
-
- def instance(self):
- return self.instance_type.get_object_for_this_type(id=self.id)
+ def attributes(self):
+ if self.parent:
+ return QuerySetMapper(self.instance.attribute_set, passthrough=self.parent.instance.attributes)
+ return QuerySetMapper(self.instance.attribute_set)
+
+ @property
+ def relationships(self):
+ if self.parent:
+ return QuerySetMapper(self.instance.relationship_set, passthrough=self.parent.instance.relationships)
+ return QuerySetMapper(self.instance.relationship_set)
accepts_subpath = False
def render_to_response(self, request, path=None, subpath=None):
accepts_subpath = False
def render_to_response(self, request, path=None, subpath=None):
status_code = models.IntegerField(choices=STATUS_CODES, default=302, verbose_name='redirect type')
def render_to_response(self, request, path=None, subpath=None):
status_code = models.IntegerField(choices=STATUS_CODES, default=302, verbose_name='redirect type')
def render_to_response(self, request, path=None, subpath=None):
class Template(TreeModel):
name = models.CharField(max_length=255)
documentation = models.TextField(null=True, blank=True)
class Template(TreeModel):
name = models.CharField(max_length=255)
documentation = models.TextField(null=True, blank=True)
- mimetype = models.CharField(max_length=255, null=True, blank=True)
- code = models.TextField()
+ mimetype = models.CharField(max_length=255, null=True, blank=True, help_text='Default: %s' % settings.DEFAULT_CONTENT_TYPE)
+ code = models.TextField(verbose_name='django template code')
- for nodelist_name in ('nodelist', 'nodelist_loop', 'nodelist_empty', 'nodelist_true', 'nodelist_false'):
+ for nodelist_name in ('nodelist', 'nodelist_loop', 'nodelist_empty', 'nodelist_true', 'nodelist_false', 'nodelist_main'):
if hasattr(node, nodelist_name):
nodes.extend(nodelist_container_nodes(getattr(node, nodelist_name)))
if isinstance(node, ContainerNode):
if hasattr(node, nodelist_name):
nodes.extend(nodelist_container_nodes(getattr(node, nodelist_name)))
if isinstance(node, ContainerNode):
template = models.ForeignKey(Template, related_name='pages')
title = models.CharField(max_length=255)
template = models.ForeignKey(Template, related_name='pages')
title = models.CharField(max_length=255)