{"title":"Django 1.1.2 release notes","version":"dev","locale":"en","docname":"releases/1.1.2","url":"/en/dev/releases/1.1.2/","canonical":"https://djangodocs.dev/en/dev/releases/1.1.2/","summary":"Welcome to Django 1.1.2! This is the second “bugfix” release in the Django 1.1 series, improving the stability and performance of the Django 1.1 codebase.","html":"<h1>Django 1.1.2 release notes<a class=\"heading-anchor\" href=\"#django-1-1-2-release-notes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Welcome to Django 1.1.2!</p>\n<p>This is the second “bugfix” release in the Django 1.1 series,\nimproving the stability and performance of the Django 1.1 codebase.</p>\n<p>Django 1.1.2 maintains backwards compatibility with Django\n1.1.0, but contain a number of fixes and other\nimprovements. Django 1.1.2 is a recommended upgrade for any\ndevelopment or deployment currently using or targeting Django 1.1.</p>\n<p>For full details on the new features, backwards incompatibilities, and\ndeprecated features in the 1.1 branch, see the <a class=\"reference internal\" href=\"/en/dev/releases/1.1/\"><span class=\"doc\">Django 1.1 release notes</span></a>.</p>\n<section id=\"backwards-incompatible-changes-in-1-1-2\">\n<h2>Backwards-incompatible changes in 1.1.2<a class=\"heading-anchor\" href=\"#backwards-incompatible-changes-in-1-1-2\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"test-runner-exit-status-code\">\n<h3>Test runner exit status code<a class=\"heading-anchor\" href=\"#test-runner-exit-status-code\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>The exit status code of the test runners (<code class=\"docutils literal notranslate\">tests/runtests.py</code> and <code class=\"docutils literal notranslate\">python\nmanage.py test</code>) no longer represents the number of failed tests, since a\nfailure of 256 or more tests resulted in a wrong exit status code. The exit\nstatus code for the test runner is now 0 for success (no failing tests) and 1\nfor any number of test failures. If needed, the number of test failures can be\nfound at the end of the test runner’s output.</p>\n</section>\n<section id=\"cookie-encoding\">\n<h3>Cookie encoding<a class=\"heading-anchor\" href=\"#cookie-encoding\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>To fix bugs with cookies in Internet Explorer, Safari, and possibly other\nbrowsers, our encoding of cookie values was changed so that the characters\ncomma and semi-colon are treated as non-safe characters, and are therefore\nencoded as <code class=\"docutils literal notranslate\">\\054</code> and <code class=\"docutils literal notranslate\">\\073</code> respectively. This could produce backwards\nincompatibilities, especially if you are storing comma or semi-colon in\ncookies and have JavaScript code that parses and manipulates cookie values\nclient-side.</p>\n</section>\n</section>\n<section id=\"one-new-feature\">\n<h2>One new feature<a class=\"heading-anchor\" href=\"#one-new-feature\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ordinarily, a point release would not include new features, but in the\ncase of Django 1.1.2, we have made an exception to this rule. Django\n1.2 (the next major release of Django) will contain a feature that\nwill improve protection against Cross-Site Request Forgery (CSRF)\nattacks. This feature requires the use of a new <a class=\"reference internal\" href=\"/en/dev/ref/templates/builtins/#std-templatetag-csrf_token\"><code class=\"xref std std-ttag docutils literal notranslate\">csrf_token</code></a>\ntemplate tag in all forms that Django renders.</p>\n<p>To make it easier to support both 1.1.X and 1.2.X versions of Django with the\nsame templates, we have decided to introduce the <a class=\"reference internal\" href=\"/en/dev/ref/templates/builtins/#std-templatetag-csrf_token\"><code class=\"xref std std-ttag docutils literal notranslate\">csrf_token</code></a> template\ntag to the 1.1.X branch. In the 1.1.X branch, <a class=\"reference internal\" href=\"/en/dev/ref/templates/builtins/#std-templatetag-csrf_token\"><code class=\"xref std std-ttag docutils literal notranslate\">csrf_token</code></a> does nothing -\nit has no effect on templates or form processing. However, it means that the\nsame template will work with Django 1.2.</p>\n</section>","rootId":"django-1-1-2-release-notes","toc":[{"title":"Backwards-incompatible changes in 1.1.2","anchor":"backwards-incompatible-changes-in-1-1-2","children":[{"title":"Test runner exit status code","anchor":"test-runner-exit-status-code","children":[]},{"title":"Cookie encoding","anchor":"cookie-encoding","children":[]}]},{"title":"One new feature","anchor":"one-new-feature","children":[]}],"breadcrumbs":[{"docname":"releases/index","title":"Release notes","url":"/en/dev/releases/"}],"prev":{"docname":"releases/1.1.3","title":"Django 1.1.3 release notes","url":"/en/dev/releases/1.1.3/"},"next":{"docname":"releases/1.1","title":"Django 1.1 release notes","url":"/en/dev/releases/1.1/"},"formats":{"html":"/en/dev/releases/1.1.2/","markdown":"/en/dev/releases/1.1.2.md","json":"/en/dev/releases/1.1.2.json"},"source":"https://github.com/django/django/blob/main/docs/releases/1.1.2.txt","official":"https://docs.djangoproject.com/en/dev/releases/1.1.2/","inVersions":["dev","6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9","1.8"],"inLocales":["en"]}