diff --git a/docs/releases/1.4.txt b/docs/releases/1.4.txt index 29fd5ef49f3..cd3609421c1 100644 --- a/docs/releases/1.4.txt +++ b/docs/releases/1.4.txt @@ -52,6 +52,17 @@ matched by a ``FOR UPDATE`` query. For more details, see the documentation for :meth:`~django.db.models.query.QuerySet.select_for_update`. +``Model.objects.bulk_create`` in the ORM +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This method allows for more efficient creation of multiple objects in the ORM. +It can provide significant performance increases if you have many objects, +Django makes use of this internally, meaning some operations (such as database +setup for test suites) has seen a performance benefit as a result. + +See the :meth:`~django.db.models.query.QuerySet.bulk_create` docs for more +information. + HTML5 ~~~~~ @@ -139,21 +150,32 @@ Django 1.4 to store the wizard state in the user's cookies. See the :doc:`form wizard ` docs for more information. -Simple clickjacking protection -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -We've added a middleware to provide easy protection against `clickjacking -`_ using the X-Frame-Options -header. It's not enabled by default for backwards compatibility reasons, but -you'll almost certainly want to :doc:`enable it ` to help -plug that security hole for browsers that support the header. - ``reverse_lazy`` ~~~~~~~~~~~~~~~~ A lazily evaluated version of :func:`django.core.urlresolvers.reverse` was added to allow using URL reversals before the project's URLConf gets loaded. +Translating URL patterns +~~~~~~~~~~~~~~~~~~~~~~~~ + +Django 1.4 gained the ability to look for a language prefix in the URL pattern +when using the new :func:`django.conf.urls.i18n.i18n_patterns` helper function. +Additionally, it's now possible to define translatable URL patterns using +:func:`~django.utils.translation.ugettext_lazy`. See +:ref:`url-internationalization` for more information about the language prefix +and how to internationalize URL patterns. + +Customizable ``SingleObjectMixin`` URLConf kwargs +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Two new attributes, +:attr:`pk_url_kwarg` and +:attr:`slug_url_kwarg`, +have been added to :class:`django.views.generic.detail.SingleObjectMixin` to +enable the customization of URLConf keyword arguments used for single +object generic views. + Assignment template tags ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -187,6 +209,21 @@ For example: {% my_tag 123 "abcd" book.title warning=message|lower profile=user.profile %} +No wrapping of exceptions in ``TEMPLATE_DEBUG`` mode +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In previous versions of Django, whenever the :setting:`TEMPLATE_DEBUG` setting +was ``True``, any exception raised during template rendering (even exceptions +unrelated to template syntax) were wrapped in ``TemplateSyntaxError`` and +re-raised. This was done in order to provide detailed template source location +information in the debug 500 page. + +In Django 1.4, exceptions are no longer wrapped. Instead, the original +exception is annotated with the source information. This means that catching +exceptions from template rendering is now consistent regardless of the value of +:setting:`TEMPLATE_DEBUG`, and there's no need to catch and unwrap +``TemplateSyntaxError`` in order to catch other errors. + ``truncatechars`` template filter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -195,15 +232,37 @@ number of characters. Truncated strings end with a translatable ellipsis sequence ("..."). See the :tfilter:`truncatechars docs ` for more details. -Customizable ``SingleObjectMixin`` URLConf kwargs -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``static`` template tag +~~~~~~~~~~~~~~~~~~~~~~~ -Two new attributes, -:attr:`pk_url_kwarg` and -:attr:`slug_url_kwarg`, -have been added to :class:`django.views.generic.detail.SingleObjectMixin` to -enable the customization of URLConf keyword arguments used for single -object generic views. +The :mod:`staticfiles` contrib app has now a new +:ttag:`static template tag` to refer to files saved with +the :setting:`STATICFILES_STORAGE` storage backend. It'll use the storage +``url`` method and therefore supports advanced features such as +:ref:`serving files from a cloud service`. + +``CachedStaticFilesStorage`` storage backend +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Additional to the `static template tag`_ the +:mod:`staticfiles` contrib app now has a +:class:`~django.contrib.staticfiles.storage.CachedStaticFilesStorage` which +caches the files it saves (when running the :djadmin:`collectstatic` +management command) by appending the MD5 hash of the file's content to the +filename. For example, the file ``css/styles.css`` would also be saved as +``css/styles.55e7cbb9ba48.css`` + +See the :class:`~django.contrib.staticfiles.storage.CachedStaticFilesStorage` +docs for more information. + +Simple clickjacking protection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We've added a middleware to provide easy protection against `clickjacking +`_ using the X-Frame-Options +header. It's not enabled by default for backwards compatibility reasons, but +you'll almost certainly want to :doc:`enable it ` to help +plug that security hole for browsers that support the header. CSRF improvements ~~~~~~~~~~~~~~~~~ @@ -244,66 +303,6 @@ a :class:`~django.forms.fields.GenericIPAddressField` form field and the validators :data:`~django.core.validators.validate_ipv46_address` and :data:`~django.core.validators.validate_ipv6_address` -Translating URL patterns -~~~~~~~~~~~~~~~~~~~~~~~~ - -Django 1.4 gained the ability to look for a language prefix in the URL pattern -when using the new :func:`django.conf.urls.i18n.i18n_patterns` helper function. -Additionally, it's now possible to define translatable URL patterns using -:func:`~django.utils.translation.ugettext_lazy`. See -:ref:`url-internationalization` for more information about the language prefix -and how to internationalize URL patterns. - -``static`` template tag -~~~~~~~~~~~~~~~~~~~~~~~ - -The :mod:`staticfiles` contrib app has now a new -:ttag:`static template tag` to refer to files saved with -the :setting:`STATICFILES_STORAGE` storage backend. It'll use the storage -``url`` method and therefore supports advanced features such as -:ref:`serving files from a cloud service`. - -``CachedStaticFilesStorage`` storage backend -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Additional to the `static template tag`_ the -:mod:`staticfiles` contrib app now has a -:class:`~django.contrib.staticfiles.storage.CachedStaticFilesStorage` which -caches the files it saves (when running the :djadmin:`collectstatic` -management command) by appending the MD5 hash of the file's content to the -filename. For example, the file ``css/styles.css`` would also be saved as -``css/styles.55e7cbb9ba48.css`` - -See the :class:`~django.contrib.staticfiles.storage.CachedStaticFilesStorage` -docs for more information. - -``Model.objects.bulk_create`` in the ORM -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This method allows for more efficient creation of multiple objects in the ORM. -It can provide significant performance increases if you have many objects, -Django makes use of this internally, meaning some operations (such as database -setup for test suites) has seen a performance benefit as a result. - -See the :meth:`~django.db.models.query.QuerySet.bulk_create` docs for more -information. - -No wrapping of exceptions in ``TEMPLATE_DEBUG`` mode -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In previous versions of Django, whenever the :setting:`TEMPLATE_DEBUG` setting -was ``True``, any exception raised during template rendering (even exceptions -unrelated to template syntax) were wrapped in ``TemplateSyntaxError`` and -re-raised. This was done in order to provide detailed template source location -information in the debug 500 page. - -In Django 1.4, exceptions are no longer wrapped. Instead, the original -exception is annotated with the source information. This means that catching -exceptions from template rendering is now consistent regardless of the value of -:setting:`TEMPLATE_DEBUG`, and there's no need to catch and unwrap -``TemplateSyntaxError`` in order to catch other errors. - - Minor features ~~~~~~~~~~~~~~