Commit Graph

100 Commits

Author SHA1 Message Date
Malcolm Tredinnick 356662cf74 Implemented auto-escaping of variable output in templates. Fully controllable by template authors and it's possible to write filters and templates that simulataneously work in both auto-escaped and non-auto-escaped environments if you need to. Fixed #2359
See documentation in templates.txt and templates_python.txt for how everything
works.

Backwards incompatible if you're inserting raw HTML output via template variables.

Based on an original design from Simon Willison and with debugging help from Michael Radziej.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@6671 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-11-14 12:58:53 +00:00
Jacob Kaplan-Moss 2570954a9a Fixed #3453: introduced a new template variable resolution system by Brian Harring (thanks!). The upshot is that variable resolution is about 25% faster, and you should see a measurable performance increase any time you've got long or deeply nested loops.
Variable resolution has changed behind the scenes -- see the note in templates_python.txt -- but template.resolve_variable() still exists. This should be fully backwards-compatible.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@6399 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-09-21 04:00:32 +00:00
Russell Keith-Magee 84e824fbbf Fixed #3036 -- Fixed some doctest strings that were failing. Thanks to pterk for the original patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6268 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-09-15 08:29:56 +00:00
Jacob Kaplan-Moss ad077ccbc0 Fixed #5445: added some compatibility code for the lack of __iter__ in Jython 2.2. Thanks, Leo Soto.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6211 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-09-14 19:55:24 +00:00
Malcolm Tredinnick 8c85ddf306 Fixed #4772 -- Fixed reverse URL creation to work with non-ASCII arguments.
Also included a test for non-ASCII strings in URL patterns, although that
already worked correctly.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5630 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-07-07 18:24:27 +00:00
Malcolm Tredinnick 953badbea5 Merged Unicode branch into trunk (r4952:5608). This should be fully
backwards compatible for all practical purposes.

Fixed #2391, #2489, #2996, #3322, #3344, #3370, #3406, #3432, #3454, #3492, #3582, #3690, #3878, #3891, #3937, #4039, #4141, #4227, #4286, #4291, #4300, #4452, #4702


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5609 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-07-04 12:11:04 +00:00
Malcolm Tredinnick 880e3cfaa6 Backed out the changes in [5482] for a bit whilst some more investigation into
side-effects is done. Refs #4565.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5511 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-06-22 07:15:04 +00:00
Malcolm Tredinnick b0fa08b9e0 Trivial formatting changes.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5486 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-06-17 09:46:04 +00:00
Malcolm Tredinnick bccb8897e6 Fixed #4565 -- Changed template rendering to use iterators, rather than
creating large strings, as much as possible. This is all backwards compatible.
Thanks, Brian Harring.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5482 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-06-17 07:11:37 +00:00
Malcolm Tredinnick dfdf7bdc5e Fixed #4378 -- Fixed a broken format string.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5333 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-05-24 12:28:53 +00:00
Malcolm Tredinnick faa31732ca Fixed #3753 -- Allow optional display of invalid variable name in
TEMPLATE_STRING_IF_INVALID. Thanks, Matt McClanahan.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5167 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-05-08 03:36:16 +00:00
Malcolm Tredinnick c675ee7612 Fixed #4180 -- Fixed docstring typo noticed by Gary Wilson.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5117 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-04-28 13:31:44 +00:00
Malcolm Tredinnick 4ac69165f8 Fixed #4176 -- Fixed unintended change introduced in [5104]. Thanks,
SmileyChris.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5116 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-04-28 04:45:38 +00:00
Malcolm Tredinnick f30ca6636b Minor tweak. Removed unnecessary argument default.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5105 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-04-27 12:27:19 +00:00
Malcolm Tredinnick 54f11ee63c Fixed #4164, #4171 -- Reworked some of the template lexer logic to ensure we
don't get caught out by a couple of corner cases.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5104 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-04-27 12:16:22 +00:00
Malcolm Tredinnick 439cb4047f Fixed #4040 -- Changed uses of has_key() to "in". Slight performance
improvement and forward-compatible with future Python releases. Patch from Gary
Wilson.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5091 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-04-26 13:30:48 +00:00
Malcolm Tredinnick 76005c917f Fixed #3948 -- Added some extra relevant information to FilterExpression
parse-related error message. Thanks, philippe.raoult@gmail.com.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5067 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-04-25 07:05:31 +00:00
Malcolm Tredinnick 8248569471 Fixed #3670 -- Fixed template argument parsing so that it understands negative
floats and integers as numeric types. Patch from SmileyChris.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@4690 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-03-09 06:12:15 +00:00
Jacob Kaplan-Moss 19e0bf1d44 Fixed #3465: template variable lookups like {{ foobar.13 }} now (correctly) fail silently on unsubscriptable objects. Thanks, Gary Wilson.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4639 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-02-27 20:25:27 +00:00
Jacob Kaplan-Moss e7aab3a474 Fixed #3558: [4558] broken in Python 2.3; this fixes that breakage. Thanks for the heads-up, xian@mintchaos.com
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4562 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-02-23 23:05:16 +00:00
Jacob Kaplan-Moss 36512d5d73 Fixed #343: filters that take strings now handle non-strings correctly. Thanks to Boffbowsh for the original patch, and to SmileyChris for the updated patch and tests.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4558 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-02-23 18:02:51 +00:00
Malcolm Tredinnick 9b129b8f3f Fixed #3468 -- fixed typo in VariableDoesNotExist.__str__. Pointed out by
Herbert Poul.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@4465 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-02-09 22:01:13 +00:00
Jacob Kaplan-Moss b5f9176115 Fixed #3441: VariableDoesNotExist is now a bit lazier about rendering its error message. Thanks, Brian Harring.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4461 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-02-06 13:59:24 +00:00
Adrian Holovaty be217bce53 Template system now supports variables whose str() returns a Unicode object with non-ascii characters. Thanks, gabor
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4161 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-12-05 19:48:46 +00:00
Jacob Kaplan-Moss 4cb2247327 Fixed #2343: Library.inclusion_tag now accepts a list of template names along with a single name. Thanks, mderk@yandex.ru
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4038 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-11-07 04:13:06 +00:00
Adrian Holovaty 41d11a685f Fixed #2968 -- Changed arguments to __import__ to use empty dictionary instead of empty string, for stricter compliance with Python library reference. Thanks for the patch, Yasushi Masuda
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3951 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-10-30 20:50:27 +00:00
Adrian Holovaty 60b46d72ac Fixed #648 -- Added comment syntax to template system: {# #}. Thanks for the patch, mccutchen@gmail.com and Hawkeye
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3931 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-10-24 21:30:38 +00:00
Malcolm Tredinnick 9c0568e21e Fixed #2208 -- Allow empty arguments to be passed to filters. Thanks, mattmcc.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3852 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-09-26 07:26:07 +00:00
Adrian Holovaty cba5557c7a Fixed #2645 -- Fixed format-string error in exception call in template/__init__.py. Thanks for the patch, md@hudora.de
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3720 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-09-05 00:19:50 +00:00
Russell Keith-Magee cfe77946d7 Fixes #2637 -- Clarified handling of TEMPLATE_STRING_IF_INVALID, especially with regards to filtering of invalid values. Modified unit tests to test both empty and non-empty values for TEMPLATE_STRING_IF_INVALID. Thanks to SmileyChris for identifying and helping to resolve this bug.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3714 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-09-04 14:02:11 +00:00
Russell Keith-Magee 8192a808bd Refs #2333 - Added documentation for the test Client, and removed a stray import.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3711 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-09-03 02:44:15 +00:00
Russell Keith-Magee 46d7defb7d Refs #2333 - Removed a call to the signal dispatcher that was mistakenly merged in.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3709 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-09-02 09:40:59 +00:00
Russell Keith-Magee d043200077 Refs #2333 - Re-added the template rendering signal for testing purposes; however, the signal is not available during normal operation. It is only added as part of an instrumentation step that occurs during test framework setup. Previous attempt (r3659) was reverted (r3666) due to performance concerns.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3707 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-09-02 09:26:24 +00:00
Russell Keith-Magee a619b2b871 Refs #1400 - Reverted r3269. Template variable evalution should follow Python norms.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3680 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-08-30 00:54:08 +00:00
Adrian Holovaty 2c2653db9f Reverted [3659], the 'name' field on Template objects and the signal emitted whenever a template is rendered. Refs #2333.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3666 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-08-27 18:10:32 +00:00
Russell Keith-Magee 89fa97b837 Refs #2333 - Added a signal that is emitted whenever a template is rendered, and added a 'name' field to Template to allow easy identification of templates.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3659 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-08-27 12:35:07 +00:00
Adrian Holovaty 065b9aed67 Negligible formatting change to django/template/__init__.py
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3449 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-07-25 18:53:27 +00:00
Jacob Kaplan-Moss a926046ba6 Second half of little cleanup tweaks suggested by pyflakes.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3414 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-07-21 20:39:17 +00:00
Malcolm Tredinnick 466b90c788 Fixed #1647 -- Included slightly more information in template syntax error
displays in DebugNodeList.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@3375 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-07-19 12:32:32 +00:00
Malcolm Tredinnick 927d87d732 Fixed #2320 -- corrected numerous errors in the custom tag examples in
python_templates.txt. Also fixed an argument parsing error for such tags.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@3308 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-07-10 10:48:08 +00:00
Adrian Holovaty df4331f3e9 Fixed #2303 -- Fixed bug in [3269] with regard to True and False special-casing in template system
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3294 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-07-07 22:20:07 +00:00
Russell Keith-Magee 4d29cae467 Refs #1400 -- Variable resolver now converts literal strings 'False' and 'True' into booleans when used as template arguments. This is point 2 from ticket #1400. Thanks Kieren Holland.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3269 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-07-04 03:44:56 +00:00
Russell Keith-Magee 6b383afd39 Fixes #1338, Refs #1400, #2237 -- Modified variable resolution to allow template 'if' statements to work if TEMPLATE_STRING_IF_INVALID is set. Modified unit tests to force the use of this variable, so that returning '' isn't confused with an actual failure.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3268 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-07-04 03:21:44 +00:00
Malcolm Tredinnick 75a8a32f86 Fixed #2181 -- allow '{' and '}' to be escaped via {% templatetag ... %}.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3138 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-06-18 04:12:55 +00:00
Adrian Holovaty 2abfd5dd58 Fixed #2109 -- Convert old-style classes to new-style classes throughout Django. Thanks, Nicola Larosa
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3113 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-06-08 05:00:13 +00:00
Adrian Holovaty 5edd1335b2 Added django.template.Token.split_contents() and used it to add support for strings with spaces in {% ifchanged %}
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3112 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-06-08 04:29:10 +00:00
Adrian Holovaty b78b1b98ff Small improvement to django.template.resolve_variable -- isdigit() instead of 0123456789
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3098 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-06-07 04:12:39 +00:00
Luke Plant 9b86db9bf2 Eliminated lots of mutable default arguments (since they are bugs
waiting to happen and are memory leaks too).


git-svn-id: http://code.djangoproject.com/svn/django/trunk@3070 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-06-03 13:37:34 +00:00
Adrian Holovaty 55c9e98d86 Fixed #1852 -- Improved TemplateSyntaxError to display the original exception if str() of the exception raises an exception in itself. Thanks, nnorwitz@google.com
git-svn-id: http://code.djangoproject.com/svn/django/trunk@2906 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-05-15 04:24:48 +00:00
Adrian Holovaty f69cf70ed8 MERGED MAGIC-REMOVAL BRANCH TO TRUNK. This change is highly backwards-incompatible. Please read http://code.djangoproject.com/wiki/RemovingTheMagic for upgrade instructions.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@2809 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2006-05-02 01:31:56 +00:00