diff options
Diffstat (limited to 'django')
| -rw-r--r-- | django/conf/global_settings.py | 3 | ||||
| -rw-r--r-- | django/core/template/__init__.py | 14 |
2 files changed, 10 insertions, 7 deletions
diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 048504a5c8..0b9d377573 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -113,6 +113,9 @@ TEMPLATE_CONTEXT_PROCESSORS = ( # 'django.core.context_processors.request', ) +# Output to use in template system for invalid (e.g. misspelled) variables. +TEMPLATE_STRING_IF_INVALID = '' + # URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a # trailing slash. # Examples: "http://foo.com/media/", "/media/". diff --git a/django/core/template/__init__.py b/django/core/template/__init__.py index 6298ce24b9..fe1a9cb338 100644 --- a/django/core/template/__init__.py +++ b/django/core/template/__init__.py @@ -57,7 +57,7 @@ times with multiple contexts) import re from inspect import getargspec from django.utils.functional import curry -from django.conf.settings import DEFAULT_CHARSET, TEMPLATE_DEBUG +from django.conf.settings import DEFAULT_CHARSET, TEMPLATE_DEBUG, TEMPLATE_STRING_IF_INVALID __all__ = ('Template','Context','compile_string') @@ -181,7 +181,7 @@ class Context: for dict in self.dicts: if dict.has_key(key): return dict[key] - return '' + return TEMPLATE_STRING_IF_INVALID def __delitem__(self, key): "Delete a variable from the current context" @@ -588,7 +588,7 @@ class FilterExpression(object): try: obj = resolve_variable(self.var, context) except VariableDoesNotExist: - obj = '' + obj = TEMPLATE_STRING_IF_INVALID for func, args in self.filters: arg_vals = [] for lookup, arg in args: @@ -657,7 +657,7 @@ def resolve_variable(path, context): try: current = number_type(path) except ValueError: - current = '' + current = TEMPLATE_STRING_IF_INVALID elif path[0] in ('"', "'") and path[0] == path[-1]: current = path[1:-1] else: @@ -671,16 +671,16 @@ def resolve_variable(path, context): current = getattr(current, bits[0]) if callable(current): if getattr(current, 'alters_data', False): - current = '' + current = TEMPLATE_STRING_IF_INVALID else: try: # method call (assuming no args required) current = current() except SilentVariableFailure: - current = '' + current = TEMPLATE_STRING_IF_INVALID except TypeError: # arguments *were* required # GOTCHA: This will also catch any TypeError # raised in the function itself. - current = '' # invalid method call + current = TEMPLATE_STRING_IF_INVALID # invalid method call except (TypeError, AttributeError): try: # list-index lookup current = current[int(bits[0])] |
