summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorAdrian Holovaty <adrian@holovaty.com>2006-02-09 00:31:51 +0000
committerAdrian Holovaty <adrian@holovaty.com>2006-02-09 00:31:51 +0000
commite0c915ec39c646f9444eebf37abca015d7a48865 (patch)
tree4a7196c3296debc2b19ce4969b0fdb36c775637f /django
parentba8f23424bc6ea885a129cc08f9702976e2bb0ea (diff)
Added TEMPLATE_STRING_IF_INVALID setting, which specifies what the template system should output in case of invalid variables. Default is empty string (to match current behavior)
git-svn-id: http://code.djangoproject.com/svn/django/trunk@2294 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/conf/global_settings.py3
-rw-r--r--django/core/template/__init__.py14
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])]