- if not node:
- raise Http404
- if subpath and not node.instance.accepts_subpath:
- raise Http404
- return node.instance.render_to_response(request, path=path, subpath=subpath)
+
+ node = request.node
+ subpath = request.node.subpath
+
+ try:
+ if subpath and not node.accepts_subpath:
+ raise Http404
+ return node.render_to_response(request, kwargs)
+ except Http404, e:
+ if settings.DEBUG:
+ raise
+
+ try:
+ Http404View = node.attributes['Http404']
+ except KeyError:
+ Http404View = None
+
+ if not Http404View:
+ raise e
+
+ extra_context = {'exception': e}
+
+ return Http404View.render_to_response(request, extra_context)
+ except Exception, e:
+ if settings.DEBUG:
+ raise
+
+ try:
+ Http500View = node.attributes['Http500']
+
+ if not Http500View:
+ raise e
+
+ extra_context = {'exception': e}
+
+ return Http500View.render_to_response(request, extra_context)
+ except:
+ raise e
\ No newline at end of file