X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/8c6ffb8e54f201a0fb7776fdd865bbbb3d42a29b..2c9037d33f3e9d8d0ff6f7389fcfd68ca11258ed:/views.py diff --git a/views.py b/views.py index b3e2a74..7aac917 100644 --- a/views.py +++ b/views.py @@ -3,34 +3,31 @@ from django.conf import settings from django.http import Http404, HttpResponse from django.template import RequestContext from django.views.decorators.vary import vary_on_headers +from philo.exceptions import MIDDLEWARE_NOT_CONFIGURED from philo.models import Node @vary_on_headers('Accept') def node_view(request, path=None, **kwargs): - node = None - subpath = None - if path is None: - path = '/' - current_site = Site.objects.get_current() - try: - node, subpath = Node.objects.get_with_path(path, root=current_site.root_node, absolute_result=False) - except Node.DoesNotExist: - raise Http404 + if not hasattr(request, 'node'): + raise MIDDLEWARE_NOT_CONFIGURED - if not node: + if not request.node: raise Http404 + node = request.node + subpath = request.node.subpath + try: if subpath and not node.accepts_subpath: raise Http404 - return node.render_to_response(request, path=path, subpath=subpath) + return node.render_to_response(request, kwargs) except Http404, e: if settings.DEBUG: raise try: - Http404View = node.relationships['Http404'] + Http404View = node.attributes['Http404'] except KeyError: Http404View = None @@ -39,19 +36,19 @@ def node_view(request, path=None, **kwargs): extra_context = {'exception': e} - return Http404View.render_to_response(node, request, path, subpath, extra_context) + return Http404View.render_to_response(request, extra_context) except Exception, e: if settings.DEBUG: raise try: - Http500View = node.relationships['Http500'] + Http500View = node.attributes['Http500'] if not Http500View: raise e extra_context = {'exception': e} - return Http500View.render_to_response(node, request, path, subpath, extra_context) + return Http500View.render_to_response(request, extra_context) except: raise e \ No newline at end of file