mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	magic-removal: Merged to [2294]
git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@2295 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -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/". | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -55,7 +55,7 @@ msgstr "選択された %s" | ||||
|  | ||||
| #: contrib/admin/media/js/SelectFilter2.js:54 | ||||
| msgid "Select your choice(s) and click " | ||||
| msgstr "" | ||||
| msgstr "選択してクリック" | ||||
|  | ||||
| #: contrib/admin/media/js/SelectFilter2.js:59 | ||||
| msgid "Clear all" | ||||
|   | ||||
| @@ -58,7 +58,6 @@ import re | ||||
| from inspect import getargspec | ||||
| from django.utils.functional import curry | ||||
| from django.conf import settings | ||||
| from django.conf import settings | ||||
| from django.template.context import Context, RequestContext | ||||
|  | ||||
| __all__ = ('Template', 'Context', 'RequestContext', 'compile_string') | ||||
| @@ -541,7 +540,7 @@ class FilterExpression(object): | ||||
|         try: | ||||
|             obj = resolve_variable(self.var, context) | ||||
|         except VariableDoesNotExist: | ||||
|             obj = '' | ||||
|             obj = settings.TEMPLATE_STRING_IF_INVALID | ||||
|         for func, args in self.filters: | ||||
|             arg_vals = [] | ||||
|             for lookup, arg in args: | ||||
| @@ -610,7 +609,7 @@ def resolve_variable(path, context): | ||||
|         try: | ||||
|            current = number_type(path) | ||||
|         except ValueError: | ||||
|            current = '' | ||||
|            current = settings.TEMPLATE_STRING_IF_INVALID | ||||
|     elif path[0] in ('"', "'") and path[0] == path[-1]: | ||||
|         current = path[1:-1] | ||||
|     else: | ||||
| @@ -624,17 +623,17 @@ def resolve_variable(path, context): | ||||
|                     current = getattr(current, bits[0]) | ||||
|                     if callable(current): | ||||
|                         if getattr(current, 'alters_data', False): | ||||
|                             current = '' | ||||
|                             current = settings.TEMPLATE_STRING_IF_INVALID | ||||
|                         else: | ||||
|                             try: # method call (assuming no args required) | ||||
|                                 current = current() | ||||
|                             except TypeError: # arguments *were* required | ||||
|                                 # GOTCHA: This will also catch any TypeError | ||||
|                                 # raised in the function itself. | ||||
|                                 current = '' # invalid method call | ||||
|                                 current = settings.TEMPLATE_STRING_IF_INVALID # invalid method call | ||||
|                             except Exception, e: | ||||
|                                 if getattr(e, 'silent_variable_failure', False): | ||||
|                                     current = '' | ||||
|                                     current = settings.TEMPLATE_STRING_IF_INVALID | ||||
|                                 else: | ||||
|                                     raise | ||||
|                 except (TypeError, AttributeError): | ||||
|   | ||||
| @@ -33,7 +33,7 @@ class Context: | ||||
|         for dict in self.dicts: | ||||
|             if dict.has_key(key): | ||||
|                 return dict[key] | ||||
|         return '' | ||||
|         return settings.TEMPLATE_STRING_IF_INVALID | ||||
|  | ||||
|     def __delitem__(self, key): | ||||
|         "Delete a variable from the current context" | ||||
|   | ||||
| @@ -621,6 +621,18 @@ Default: ``('django.template.loaders.filesystem.load_template_source',)`` | ||||
| A tuple of callables (as strings) that know how to import templates from | ||||
| various sources. See the `template documentation`_. | ||||
|  | ||||
| TEMPLATE_STRING_IF_INVALID | ||||
| -------------------------- | ||||
|  | ||||
| Default: ``''`` (Empty string) | ||||
|  | ||||
| **New in Django development version.** | ||||
|  | ||||
| Output, as a string, that the template system should use for invalid (e.g. | ||||
| misspelled) variables. See `How invalid variables are handled`_. | ||||
|  | ||||
| .. _How invalid variables are handled: http://www.djangoproject.com/documentation/templates_python/#how-invalid-variables-are-handled | ||||
|  | ||||
| TIME_FORMAT | ||||
| ----------- | ||||
|  | ||||
|   | ||||
| @@ -70,6 +70,12 @@ Use a dot (``.``) to access attributes of a variable. | ||||
| In the above example, ``{{ section.title }}`` will be replaced with the | ||||
| ``title`` attribute of the ``section`` object. | ||||
|  | ||||
| In Django 0.91, if you use a variable that doesn't exist, it will be silently | ||||
| ignored; the variable will be replaced by nothingness. In the Django | ||||
| development version, if a variable doesn't exist, the template system inserts | ||||
| the value of the ``TEMPLATE_STRING_IF_INVALID`` setting, which is set to ``''`` | ||||
| (the empty string) by default. | ||||
|  | ||||
| If you use a variable that doesn't exist, it will be silently ignored. The | ||||
| variable will be replaced by nothingness. | ||||
|  | ||||
|   | ||||
| @@ -135,14 +135,6 @@ Here are a few examples:: | ||||
|     >>> t.render(c) | ||||
|     "The first stooge in the list is Larry." | ||||
|  | ||||
| If a variable doesn't exist, the template system fails silently. The variable | ||||
| is replaced with an empty string:: | ||||
|  | ||||
|     >>> t = Template("My name is {{ my_name }}.") | ||||
|     >>> c = Context({"foo": "bar"}) | ||||
|     >>> t.render(c) | ||||
|     "My name is ." | ||||
|  | ||||
| Method lookups are slightly more complex than the other lookup types. Here are | ||||
| some things to keep in mind: | ||||
|  | ||||
| @@ -199,6 +191,28 @@ some things to keep in mind: | ||||
|             self.database_record.delete() | ||||
|         sensitive_function.alters_data = True | ||||
|  | ||||
| How invalid variables are handled | ||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
|  | ||||
| In Django 0.91, if a variable doesn't exist, the template system fails | ||||
| silently. The variable is replaced with an empty string:: | ||||
|  | ||||
|     >>> t = Template("My name is {{ my_name }}.") | ||||
|     >>> c = Context({"foo": "bar"}) | ||||
|     >>> t.render(c) | ||||
|     "My name is ." | ||||
|  | ||||
| This applies to any level of lookup:: | ||||
|  | ||||
|     >>> t = Template("My name is {{ person.fname }} {{ person.lname }}.") | ||||
|     >>> c = Context({"person": {"fname": "Stan"}}) | ||||
|     >>> t.render(c) | ||||
|     "My name is Stan ." | ||||
|  | ||||
| In the Django development version, if a variable doesn't exist, the template | ||||
| system inserts the value of the ``TEMPLATE_STRING_IF_INVALID`` setting, which | ||||
| is set to ``''`` (the empty string) by default. | ||||
|  | ||||
| Playing with Context objects | ||||
| ---------------------------- | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user