X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/4fc7f069be5a0cc064e96bad765052c6ad61c27e..92691d27d00f2c9a1b0536020ca2a5c1ec07f3e3:/models/nodes.py?ds=inline diff --git a/models/nodes.py b/models/nodes.py index a8125ee..4fa4935 100644 --- a/models/nodes.py +++ b/models/nodes.py @@ -4,11 +4,13 @@ from django.contrib.contenttypes import generic from django.contrib.sites.models import Site from django.http import HttpResponse, HttpResponseServerError, HttpResponseRedirect from django.core.servers.basehttp import FileWrapper -from django.core.urlresolvers import resolve +from django.core.urlresolvers import resolve, clear_url_caches +from django.template import add_to_builtins as register_templatetags from inspect import getargspec from philo.models.base import TreeEntity, Entity, QuerySetMapper from philo.utils import ContentTypeSubclassLimiter from philo.validators import RedirectValidator +from philo.exceptions import ViewDoesNotProvideSubpaths _view_content_type_limiter = ContentTypeSubclassLimiter(None) @@ -21,7 +23,9 @@ class Node(TreeEntity): @property def accepts_subpath(self): - return self.view.accepts_subpath + if self.view: + return self.view.accepts_subpath + return False def render_to_response(self, request, path=None, subpath=None, extra_context=None): return self.view.render_to_response(self, request, path, subpath, extra_context) @@ -39,6 +43,9 @@ class View(Entity): accepts_subpath = False + def get_subpath(self, obj): + raise ViewDoesNotProvideSubpaths + def attributes_with_node(self, node): return QuerySetMapper(self.attribute_set, passthrough=node.attributes) @@ -61,6 +68,7 @@ class MultiView(View): urlpatterns = [] def render_to_response(self, node, request, path=None, subpath=None, extra_context=None): + clear_url_caches() if not subpath: subpath = "" subpath = "/" + subpath @@ -108,4 +116,10 @@ class File(View): return response class Meta: - app_label = 'philo' \ No newline at end of file + app_label = 'philo' + + def __unicode__(self): + return self.file.name + + +register_templatetags('philo.templatetags.nodes') \ No newline at end of file