X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/d4e6b90b55aff9b98a67615c64fce5089a82f947..3544655f02b2bdffe4d101d03f2f1ee22e8dade3:/views.py?ds=inline diff --git a/views.py b/views.py index f086bfd..255e54e 100644 --- a/views.py +++ b/views.py @@ -1,22 +1,20 @@ -from django.http import Http404, HttpResponse -from django.template import RequestContext -from django.contrib.sites.models import Site -from philo.models import Node +from django.conf import settings +from django.http import Http404 +from django.views.decorators.vary import vary_on_headers +from philo.exceptions import MIDDLEWARE_NOT_CONFIGURED +@vary_on_headers('Accept') def node_view(request, path=None, **kwargs): - node = None - subpath = None - if path is None: - path = '/' - try: - current_site = Site.objects.get_current() - if current_site: - node, subpath = Node.objects.get_with_path(path, root=current_site.root_node, absolute_result=False) - except Node.DoesNotExist: + if "philo.middleware.RequestNodeMiddleware" not in settings.MIDDLEWARE_CLASSES: + raise MIDDLEWARE_NOT_CONFIGURED + + if not request.node: raise Http404 - if not node: + + node = request.node + subpath = request.node.subpath + + if subpath and not node.accepts_subpath: raise Http404 - if subpath and not node.instance.accepts_subpath: - raise Http404 - return node.instance.render_to_response(request, path=path, subpath=subpath) + return node.render_to_response(request, kwargs) \ No newline at end of file