mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Caught all exceptions raised by Engine.get_default().
In addition to ImproperlyConfigured, Engine.get_default() may also raise ImportError or other exceptions. It's better to catch all exceptions in places where the default engine isn't strictly required.
This commit is contained in:
		| @@ -177,8 +177,14 @@ class AdminSite(object): | ||||
|                 "setting in order to use the admin application.") | ||||
|         try: | ||||
|             default_template_engine = Engine.get_default() | ||||
|         except ImproperlyConfigured: | ||||
|             # Skip the check if the user has a non-trivial TEMPLATES setting | ||||
|         except Exception: | ||||
|             # Skip this non-critical check: | ||||
|             # 1. if the user has a non-trivial TEMPLATES setting and Django | ||||
|             #    can't find a default template engine | ||||
|             # 2. if anything goes wrong while loading template engines, in | ||||
|             #    order to avoid raising an exception from a confusing location | ||||
|             # Catching ImproperlyConfigured suffices for 1. but 2. requires | ||||
|             # catching all exceptions. | ||||
|             pass | ||||
|         else: | ||||
|             if ('django.contrib.auth.context_processors.auth' | ||||
|   | ||||
| @@ -7,7 +7,6 @@ import sys | ||||
| import types | ||||
|  | ||||
| from django.conf import settings | ||||
| from django.core.exceptions import ImproperlyConfigured | ||||
| from django.core.urlresolvers import resolve, Resolver404 | ||||
| from django.http import (HttpResponse, HttpResponseNotFound, HttpRequest, | ||||
|     build_request_repr) | ||||
| @@ -282,7 +281,11 @@ class ExceptionReporter(object): | ||||
|         """Return a dictionary containing traceback information.""" | ||||
|         try: | ||||
|             default_template_engine = Engine.get_default() | ||||
|         except ImproperlyConfigured: | ||||
|         except Exception: | ||||
|             # Since the debug view must never crash, catch all exceptions. | ||||
|             # If Django can't find a default template engine, get_default() | ||||
|             # raises ImproperlyConfigured. If some template engines fail to | ||||
|             # load, any exception may be raised. | ||||
|             default_template_engine = None | ||||
|  | ||||
|         # TODO: add support for multiple template engines (#24120). | ||||
|   | ||||
		Reference in New Issue
	
	Block a user