1 from django.contrib.sites.models import Site
2 from django.conf import settings
3 from django.http import Http404, HttpResponse
4 from django.template import RequestContext
5 from django.views.decorators.vary import vary_on_headers
6 from philo.exceptions import MIDDLEWARE_NOT_CONFIGURED
7 from philo.models import Node
10 @vary_on_headers('Accept')
11 def node_view(request, path=None, **kwargs):
12 if not hasattr(request, 'node'):
13 raise MIDDLEWARE_NOT_CONFIGURED
19 subpath = request.node.subpath
22 if subpath and not node.accepts_subpath:
24 return node.render_to_response(request, kwargs)
30 Http404View = node.relationships['Http404']
37 extra_context = {'exception': e}
39 return Http404View.render_to_response(request, extra_context)
45 Http500View = node.relationships['Http500']
50 extra_context = {'exception': e}
52 return Http500View.render_to_response(request, extra_context)