| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2022-05-20 | [4.1.x] Fixed #33653 -- Fixed template crash when calling methods for ↵ | cheng | |
| built-in types without required arguments. Regression in 09341856ed9008875c1cc883dc0c287670131458. Backport of 0dd29209091280ccf34e07c9468746c396b7778e from main | |||
| 2022-04-19 | Fixed #33639 -- Enabled cached template loader in development. | Carlton Gibson | |
| 2022-04-11 | Fixed #33628 -- Ignored directories with empty names in autoreloader check ↵ | Manel Clos | |
| for template changes. Regression in 68357b2ca9e88c40fc00d848799813241be39129. | |||
| 2022-02-16 | Removed unused Node.__iter__(). | Keryn Knight | |
| 2022-02-07 | Refs #33476 -- Refactored code to strictly match 88 characters line length. | Mariusz Felisiak | |
| 2022-02-07 | Refs #33476 -- Reformatted code with Black. | django-bot | |
| 2022-02-03 | Fixed #33473 -- Fixed detecting changes by autoreloader in .py files inside ↵ | Hrushikesh Vaidya | |
| template directories. | |||
| 2022-02-03 | Refs #33476 -- Refactored problematic code before reformatting by Black. | Mariusz Felisiak | |
| In these cases Black produces unexpected results, e.g. def make_random_password( self, length=10, allowed_chars='abcdefghjkmnpqrstuvwxyz' 'ABCDEFGHJKLMNPQRSTUVWXYZ' '23456789', ): or cursor.execute(""" SELECT ... """, [table name], ) | |||
| 2022-02-02 | Fixed #33474 -- Added __slots__ to Variable and FilterExpression. | Keryn Knight | |
| 2022-02-01 | Fixed CVE-2022-22818 -- Fixed possible XSS via {% debug %} template tag. | Markus Holtermann | |
| Thanks Keryn Knight for the report. Co-authored-by: Adam Johnson <me@adamj.eu> | |||
| 2022-01-10 | Simplified @stringfilter decorator and Library with unwrap(). | Baptiste Mispelon | |
| Nowadays we can use inspect.unwrap() to retrieve the innermost function object when needed, and most of the uses of _decorated_function were to access the original __name__ which is not needed because @functools.wraps sets that attribute correctly. | |||
| 2022-01-07 | Avoided isinstance(…, Variable) calls in FilterExpression.resolve(). | Keryn Knight | |
| By determining the variable type within __init__() instead of resolve() we can skip an isinstance() check at template runtime. Templates are executed in production more often than the parse trees themselves, assuming the cached Loader is used. | |||
| 2022-01-04 | Fixed CVE-2021-45116 -- Fixed potential information disclosure in dictsort ↵ | Florian Apolloner | |
| template filter. Thanks to Dennis Brinkrolf for the report. Co-authored-by: Adam Johnson <me@adamj.eu> | |||
| 2021-12-21 | Optimized django.template.autoreload.get_template_directories() a bit. | Adam Johnson | |
| 2021-12-08 | Refs #32290 -- Optimized construct_relative_path() by delay computing ↵ | Keryn Knight | |
| has_quotes. | |||
| 2021-11-22 | Fixed #33302 -- Made element_id optional argument for json_script template ↵ | Baptiste Mispelon | |
| filter. Added versionchanged note in documentation | |||
| 2021-10-20 | Refs #32987 -- Refactored out get_template_tag_modules(). | Daniel Fairhead | |
| 2021-09-27 | Used Path.read_text() in jinja2.get_exception_info(). | Mariusz Felisiak | |
| 2021-09-27 | Refs #32355 -- Used @functools.lru_cache as a straight decorator. | Mariusz Felisiak | |
| 2021-09-08 | Fixed #30086, Refs #32873 -- Made floatformat template filter independent of ↵ | Mariusz Felisiak | |
| USE_L10N. | |||
| 2021-08-25 | Refs #32919 -- Simplified Lexer.create_token() by reorganizing blocks. | Chris Jerdonek | |
| 2021-08-25 | Refs #32919 -- Added assertion for token start in Lexer.create_token(). | Chris Jerdonek | |
| This adds an assertion in the code path where the method would otherwise return None, which isn't allowed. | |||
| 2021-08-19 | Fixed #33036 -- Made simple_tag()/inclusion_tag() with takes_context raise ↵ | Matt Westcott | |
| TemplateSyntaxError when function has no parameters. | |||
| 2021-08-09 | Fixed #33002 -- Made DebugLexer.tokenize() more closely parallel ↵ | Chris Jerdonek | |
| Lexer.tokenize(). | |||
| 2021-08-09 | Refs #33002 -- Renamed variable from bit to token_string in Lexer.tokenize(). | Chris Jerdonek | |
| 2021-08-09 | Refs #33002 -- Optimized Lexer.tokenize() by skipping computing lineno when ↵ | Chris Jerdonek | |
| not needed. | |||
| 2021-08-09 | Fixed #32990 -- Simplified and optimized tag regex. | Greg Twohig | |
| Thanks Chris Jerdonek for the review. | |||
| 2021-08-05 | Refs #32986 -- Moved TRANSLATOR_COMMENT_MARK to ↵ | Chris Jerdonek | |
| django.utils.translation.template. | |||
| 2021-08-05 | Fixed #32986 -- Removed unneeded str.find() call in Lexer.create_token(). | Chris Jerdonek | |
| Unnecessary since 47ddd6a4082d55d8856b7e6beac553485dd627f7. | |||
| 2021-08-02 | Fixed #32919 -- Optimized lexing & parsing of templates. | Keryn Knight | |
| This optimizes: - Lexer.create_token() by avoiding startswith() calls, - Parser.parse() by re-using the token type enum's value, - Parser.extend_nodelist() by removing unnecessary isinstance() check, - some Node subclasses by removing the implicit "nodelist" from "child_nodelists", - Variable.__init__() by avoiding startswith() calls. | |||
| 2021-07-02 | Fixed #28935 -- Fixed display of errors in extended blocks. | cammil | |
| Get the template that caused the exception and get the exception info from that template, using the node that caused the exception. | |||
| 2021-06-11 | Fixed #32824 -- Improved performance of NodeList.render(). | Keryn Knight | |
| This avoids the following: - checking that each item in the nodelist is a subclass of Node, - calling str() on the render_annotated() output, because it's documented that Node.render() must return a string, - calling mark_safe() on the output, when the value to be wrapped is definitively known to be a string because the result of ''.join() is always of that type, - using an intermediate list to store each individual string. | |||
| 2021-06-10 | Refs #24121 -- Added __repr__() to AdminForm, BlockContext, ↵ | saeedblanchette | |
| BlockTranslateNode, and IncludeNode. | |||
| 2021-06-07 | Fixed #32814 -- Improved performance of TextNode. | Keryn Knight | |
| This avoids calling render() and handling exceptions, which is not necessary for text nodes. | |||
| 2021-06-01 | Refs #24121 -- Added __repr__() to Engine | abhiabhi94 | |
| 2021-05-26 | Fixed #32744 -- Normalized to pathlib.Path in autoreloader check for ↵ | Hasan Ramezani | |
| template changes. | |||
| 2021-03-17 | Refs #24121 -- Added __repr__() to Origin and Template. | Tiago Honorato | |
| 2021-03-02 | Refs #24121 -- Added __repr__() to URLNode. | Rohith PR | |
| 2021-02-26 | Refs #24121 -- Added __repr__() to FilterExpression, Lexer, Parser, and Token. | David Smith | |
| 2021-01-27 | Fixed #32290 -- Fixed TemplateNotFound in {% include %} tag for relative ↵ | Hasan Ramezani | |
| path in variable. | |||
| 2021-01-14 | Refs #25236 -- Removed {% ifequal %} and {% ifnotequal %} template tags per ↵ | Mariusz Felisiak | |
| deprecation timeline. | |||
| 2020-12-28 | Fixed #27827 -- Used "raise from" when raising InvalidTemplateLibrary ↵ | Jacob Walls | |
| exceptions in get_package_libraries(). This change sets the __cause__ attribute to raised exceptions and makes small cleanups in error messages. | |||
| 2020-11-21 | Refs #15053 -- Clarified debug message when skipping templates to avoid ↵ | Daniel Hahler | |
| recursion. | |||
| 2020-11-05 | Fixed #25791 -- Implement autoreload behaviour for cached template loader. | Tom Forbes | |
| 2020-11-05 | Refs #25791 -- Added get_dirs() method to cached template loader. | Tom Forbes | |
| 2020-10-13 | Fixed #20601 -- Allowed forcing format with thousand separators in ↵ | Jacob Walls | |
| floatformat filter. Thanks Claude Paroz and Nick Pope for reviews. | |||
| 2020-10-07 | Fixed #32002 -- Added headers parameter to HttpResponse and subclasses. | Tom Carrick | |
| 2020-07-30 | Bumped minimum isort version to 5.1.0. | David Smith | |
| Fixed inner imports per isort 5. isort 5.0.0 to 5.1.0 was unstable. | |||
| 2020-05-11 | Refs #30116 -- Simplified regex match group access with Match.__getitem__(). | Jon Dufresne | |
| The method has been available since Python 3.6. The shorter syntax is also marginally faster. | |||
| 2020-05-11 | Fixed #25236 -- Deprecated {% ifequal %} and {% ifnotequal %} template tags. | Jon Dufresne | |
| The {% if %} tag provides all features of these tags. Since Django 1.2 (May 17, 2010), the docs have hinted that {% ifequal %} and {% ifnotequal %} will be deprecated in a future Django version. Time to make it official. | |||
