mirror of https://github.com/django/django.git
Adapted uses of versionchanged/versionadded to the new form.
Refs #20104.
This commit is contained in:
parent
1ddeeb5b8e
commit
78c842a323
|
@ -66,7 +66,7 @@ class VersionDirective(Directive):
|
||||||
msg = """Only one argument accepted for directive '{directive_name}::'.
|
msg = """Only one argument accepted for directive '{directive_name}::'.
|
||||||
Comments should be provided as content,
|
Comments should be provided as content,
|
||||||
not as an extra argument.""".format(directive_name=self.name)
|
not as an extra argument.""".format(directive_name=self.name)
|
||||||
raise ValueError(msg)
|
raise self.error(msg)
|
||||||
|
|
||||||
env = self.state.document.settings.env
|
env = self.state.document.settings.env
|
||||||
ret = []
|
ret = []
|
||||||
|
|
|
@ -256,7 +256,7 @@ All attributes can be set in your derived class and can be used in
|
||||||
|
|
||||||
.. versionadded:: 1.6
|
.. versionadded:: 1.6
|
||||||
|
|
||||||
The ``leave_locale_alone`` option was added in Django 1.6.
|
The ``leave_locale_alone`` option was added in Django 1.6.
|
||||||
|
|
||||||
Methods
|
Methods
|
||||||
-------
|
-------
|
||||||
|
|
|
@ -75,8 +75,8 @@ access to your precious data on a model by model basis.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The behavior by which introspected models are created as unmanaged ones is new
|
The behavior by which introspected models are created as unmanaged ones is new
|
||||||
in Django 1.6.
|
in Django 1.6.
|
||||||
|
|
||||||
Install the core Django tables
|
Install the core Django tables
|
||||||
==============================
|
==============================
|
||||||
|
|
|
@ -389,8 +389,8 @@ This is a new feature, so it should be documented. Add the following on line
|
||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionadded:: 1.5
|
||||||
|
|
||||||
The current value of the field will be displayed as a clickable link above the
|
The current value of the field will be displayed as a clickable link above the
|
||||||
input widget.
|
input widget.
|
||||||
|
|
||||||
For more information on writing documentation, including an explanation of what
|
For more information on writing documentation, including an explanation of what
|
||||||
the ``versionadded`` bit is all about, see
|
the ``versionadded`` bit is all about, see
|
||||||
|
|
|
@ -105,6 +105,7 @@ TemplateView
|
||||||
in the URL.
|
in the URL.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The context used to be populated with a ``{{ params }}`` dictionary of
|
The context used to be populated with a ``{{ params }}`` dictionary of
|
||||||
the parameters captured in the URL. Now those parameters are first-level
|
the parameters captured in the URL. Now those parameters are first-level
|
||||||
context variables.
|
context variables.
|
||||||
|
|
|
@ -142,7 +142,7 @@ YearArchiveView
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
Previously, this returned a string.
|
Previously, this returned a string.
|
||||||
|
|
||||||
* ``next_year``: A :class:`~datetime.date` object
|
* ``next_year``: A :class:`~datetime.date` object
|
||||||
representing the first day of the next year, according to
|
representing the first day of the next year, according to
|
||||||
|
|
|
@ -330,5 +330,6 @@ BaseDateListView
|
||||||
:meth:`QuerySet.dates()<django.db.models.query.QuerySet.dates>`.
|
:meth:`QuerySet.dates()<django.db.models.query.QuerySet.dates>`.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The ``ordering`` parameter was added, and the default order was
|
The ``ordering`` parameter was added, and the default order was
|
||||||
changed to ascending.
|
changed to ascending.
|
||||||
|
|
|
@ -206,10 +206,10 @@ ProcessFormView
|
||||||
|
|
||||||
.. versionadded:: 1.6
|
.. versionadded:: 1.6
|
||||||
|
|
||||||
``success_url`` may contain dictionary string formatting, which
|
``success_url`` may contain dictionary string formatting, which
|
||||||
will be interpolated against the object's field attributes. For
|
will be interpolated against the object's field attributes. For
|
||||||
example, you could use ``success_url="/parent/%(parent_id)s/"`` to
|
example, you could use ``success_url="/parent/%(parent_id)s/"`` to
|
||||||
redirect to a URL composed out of the ``parent_id`` field on a model.
|
redirect to a URL composed out of the ``parent_id`` field on a model.
|
||||||
|
|
||||||
.. method:: get_success_url()
|
.. method:: get_success_url()
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,6 @@ TemplateResponseMixin
|
||||||
.. attribute:: content_type
|
.. attribute:: content_type
|
||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionadded:: 1.5
|
||||||
The ``content_type`` attribute was added.
|
|
||||||
|
|
||||||
The content type to use for the response. ``content_type`` is passed
|
The content type to use for the response. ``content_type`` is passed
|
||||||
as a keyword argument to ``response_class``. Default is ``None`` --
|
as a keyword argument to ``response_class``. Default is ``None`` --
|
||||||
|
|
|
@ -62,6 +62,7 @@ To set the same ``X-Frame-Options`` value for all responses in your site, put
|
||||||
)
|
)
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
This middleware is enabled in the settings file generated by
|
This middleware is enabled in the settings file generated by
|
||||||
:djadmin:`startproject`.
|
:djadmin:`startproject`.
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ The admin is enabled in the default project template used by
|
||||||
:djadmin:`startproject`.
|
:djadmin:`startproject`.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
In previous versions, the admin wasn't enabled by default.
|
In previous versions, the admin wasn't enabled by default.
|
||||||
|
|
||||||
For reference, here are the requirements:
|
For reference, here are the requirements:
|
||||||
|
@ -1341,6 +1342,7 @@ templates used by the :class:`ModelAdmin` views:
|
||||||
return qs.filter(author=request.user)
|
return qs.filter(author=request.user)
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The ``get_queryset`` method was previously named ``queryset``.
|
The ``get_queryset`` method was previously named ``queryset``.
|
||||||
|
|
||||||
.. method:: ModelAdmin.message_user(request, message, level=messages.INFO, extra_tags='', fail_silently=False)
|
.. method:: ModelAdmin.message_user(request, message, level=messages.INFO, extra_tags='', fail_silently=False)
|
||||||
|
@ -1348,7 +1350,9 @@ templates used by the :class:`ModelAdmin` views:
|
||||||
Sends a message to the user using the :mod:`django.contrib.messages`
|
Sends a message to the user using the :mod:`django.contrib.messages`
|
||||||
backend. See the :ref:`custom ModelAdmin example <custom-admin-action>`.
|
backend. See the :ref:`custom ModelAdmin example <custom-admin-action>`.
|
||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
|
Keyword arguments were added in Django 1.5.
|
||||||
|
|
||||||
Keyword arguments allow you to change the message level, add extra CSS
|
Keyword arguments allow you to change the message level, add extra CSS
|
||||||
tags, or fail silently if the ``contrib.messages`` framework is not
|
tags, or fail silently if the ``contrib.messages`` framework is not
|
||||||
|
@ -1451,6 +1455,7 @@ in your own admin JavaScript without including a second copy, you can use the
|
||||||
``django.jQuery`` object on changelist and add/edit views.
|
``django.jQuery`` object on changelist and add/edit views.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The embedded jQuery has been upgraded from 1.4.2 to 1.9.1.
|
The embedded jQuery has been upgraded from 1.4.2 to 1.9.1.
|
||||||
|
|
||||||
The :class:`ModelAdmin` class requires jQuery by default, so there is no need
|
The :class:`ModelAdmin` class requires jQuery by default, so there is no need
|
||||||
|
|
|
@ -234,18 +234,18 @@ lookup::
|
||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionadded:: 1.5
|
||||||
|
|
||||||
Prior to Django 1.5,
|
Prior to Django 1.5,
|
||||||
:meth:`~django.contrib.contenttypes.models.ContentTypeManager.get_for_model` and
|
:meth:`~django.contrib.contenttypes.models.ContentTypeManager.get_for_model` and
|
||||||
:meth:`~django.contrib.contenttypes.models.ContentTypeManager.get_for_models`
|
:meth:`~django.contrib.contenttypes.models.ContentTypeManager.get_for_models`
|
||||||
always returned the :class:`~django.contrib.contenttypes.models.ContentType`
|
always returned the :class:`~django.contrib.contenttypes.models.ContentType`
|
||||||
associated with the concrete model of the specified one(s). That means there
|
associated with the concrete model of the specified one(s). That means there
|
||||||
was no way to retrieve the
|
was no way to retrieve the
|
||||||
:class:`~django.contrib.contenttypes.models.ContentType` of a proxy model
|
:class:`~django.contrib.contenttypes.models.ContentType` of a proxy model
|
||||||
using those methods. As of Django 1.5 you can now pass a boolean flag –
|
using those methods. As of Django 1.5 you can now pass a boolean flag –
|
||||||
``for_concrete_model`` and ``for_concrete_models`` respectively – to specify
|
``for_concrete_model`` and ``for_concrete_models`` respectively – to specify
|
||||||
wether or not you want to retrieve the
|
wether or not you want to retrieve the
|
||||||
:class:`~django.contrib.contenttypes.models.ContentType` for the concrete or
|
:class:`~django.contrib.contenttypes.models.ContentType` for the concrete or
|
||||||
direct model.
|
direct model.
|
||||||
|
|
||||||
Generic relations
|
Generic relations
|
||||||
=================
|
=================
|
||||||
|
|
|
@ -950,6 +950,7 @@ __ http://geohash.org/
|
||||||
*Availability*: PostGIS, SpatiaLite
|
*Availability*: PostGIS, SpatiaLite
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
``geojson`` support for Spatialite > 3.0 has been added.
|
``geojson`` support for Spatialite > 3.0 has been added.
|
||||||
|
|
||||||
Attaches a ``geojson`` attribute to every model in the queryset that contains the
|
Attaches a ``geojson`` attribute to every model in the queryset that contains the
|
||||||
|
|
|
@ -252,6 +252,7 @@ Enabling the sites framework
|
||||||
============================
|
============================
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
In previous versions, the sites framework was enabled by default.
|
In previous versions, the sites framework was enabled by default.
|
||||||
|
|
||||||
To enable the sites framework, follow these steps:
|
To enable the sites framework, follow these steps:
|
||||||
|
|
|
@ -182,6 +182,7 @@ Django supports MySQL 5.0.3 and higher.
|
||||||
data on all database schema. Django's ``inspectdb`` feature uses it.
|
data on all database schema. Django's ``inspectdb`` feature uses it.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The minimum version requirement of MySQL 5.0.3 was set in Django 1.5.
|
The minimum version requirement of MySQL 5.0.3 was set in Django 1.5.
|
||||||
|
|
||||||
Django expects the database to support Unicode (UTF-8 encoding) and delegates to
|
Django expects the database to support Unicode (UTF-8 encoding) and delegates to
|
||||||
|
|
|
@ -98,6 +98,7 @@ Can be run as a cronjob or directly to clean out old data from the database
|
||||||
(only expired sessions at the moment).
|
(only expired sessions at the moment).
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
:djadmin:`cleanup` is deprecated. Use :djadmin:`clearsessions` instead.
|
:djadmin:`cleanup` is deprecated. Use :djadmin:`clearsessions` instead.
|
||||||
|
|
||||||
compilemessages
|
compilemessages
|
||||||
|
@ -122,7 +123,7 @@ Example usage::
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
Added the ability to specify multiple locales.
|
Added the ability to specify multiple locales.
|
||||||
|
|
||||||
createcachetable
|
createcachetable
|
||||||
----------------
|
----------------
|
||||||
|
@ -173,6 +174,7 @@ The :djadminopt:`--all` option may be provided to display all settings, even
|
||||||
if they have Django's default value. Such settings are prefixed by ``"###"``.
|
if they have Django's default value. Such settings are prefixed by ``"###"``.
|
||||||
|
|
||||||
.. versionadded:: 1.6
|
.. versionadded:: 1.6
|
||||||
|
|
||||||
The :djadminopt:`--all` option was added.
|
The :djadminopt:`--all` option was added.
|
||||||
|
|
||||||
dumpdata <appname appname appname.Model ...>
|
dumpdata <appname appname appname.Model ...>
|
||||||
|
@ -307,8 +309,8 @@ database to introspect.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The behavior by which introspected models are created as unmanaged ones is new
|
The behavior by which introspected models are created as unmanaged ones is new
|
||||||
in Django 1.6.
|
in Django 1.6.
|
||||||
|
|
||||||
loaddata <fixture fixture ...>
|
loaddata <fixture fixture ...>
|
||||||
------------------------------
|
------------------------------
|
||||||
|
@ -467,7 +469,7 @@ You can also use commas to separate multiple locales::
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
Added the ability to specify multiple locales.
|
Added the ability to specify multiple locales.
|
||||||
|
|
||||||
.. django-admin-option:: --domain
|
.. django-admin-option:: --domain
|
||||||
|
|
||||||
|
@ -778,8 +780,6 @@ use the ``--plain`` option, like so::
|
||||||
|
|
||||||
django-admin.py shell --plain
|
django-admin.py shell --plain
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
|
||||||
|
|
||||||
If you would like to specify either IPython or bpython as your interpreter if
|
If you would like to specify either IPython or bpython as your interpreter if
|
||||||
you have both installed you can specify an alternative interpreter interface
|
you have both installed you can specify an alternative interpreter interface
|
||||||
with the ``-i`` or ``--interface`` options like so:
|
with the ``-i`` or ``--interface`` options like so:
|
||||||
|
@ -807,9 +807,13 @@ behavior you can use the ``--no-startup`` option. e.g.::
|
||||||
|
|
||||||
django-admin.py shell --plain --no-startup
|
django-admin.py shell --plain --no-startup
|
||||||
|
|
||||||
|
.. versionadded:: 1.5
|
||||||
|
|
||||||
|
The ``--interface`` option was added in Django 1.5.
|
||||||
|
|
||||||
.. versionadded:: 1.6
|
.. versionadded:: 1.6
|
||||||
|
|
||||||
The ``--no-startup`` option was added in Django 1.6.
|
The ``--no-startup`` option was added in Django 1.6.
|
||||||
|
|
||||||
sql <appname appname ...>
|
sql <appname appname ...>
|
||||||
-------------------------
|
-------------------------
|
||||||
|
@ -1353,6 +1357,7 @@ for any other exception. If you specify ``--traceback``, ``django-admin.py``
|
||||||
will also output a full stack trace when a ``CommandError`` is raised.
|
will also output a full stack trace when a ``CommandError`` is raised.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
Previously, Django didn't show a full stack trace by default for exceptions
|
Previously, Django didn't show a full stack trace by default for exceptions
|
||||||
other than ``CommandError``.
|
other than ``CommandError``.
|
||||||
|
|
||||||
|
|
|
@ -138,6 +138,7 @@ the underlying database exceptions. See :pep:`249`, the Python Database API
|
||||||
Specification v2.0, for further information.
|
Specification v2.0, for further information.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
Previous version of Django only wrapped ``DatabaseError`` and
|
Previous version of Django only wrapped ``DatabaseError`` and
|
||||||
``IntegrityError``.
|
``IntegrityError``.
|
||||||
|
|
||||||
|
|
|
@ -468,6 +468,7 @@ For each field, we describe the default widget used if you don't specify
|
||||||
``%(limit_value)s``, which will be substituted by the appropriate limit.
|
``%(limit_value)s``, which will be substituted by the appropriate limit.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
Similarly, the ``max_digits``, ``max_decimal_places`` and
|
Similarly, the ``max_digits``, ``max_decimal_places`` and
|
||||||
``max_whole_digits`` error messages may contain ``%(max)s``.
|
``max_whole_digits`` error messages may contain ``%(max)s``.
|
||||||
|
|
||||||
|
@ -1014,10 +1015,12 @@ objects (in the case of ``ModelMultipleChoiceField``) into the
|
||||||
``invalid_pk_value``
|
``invalid_pk_value``
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The empty and normalized values were changed to be consistently
|
The empty and normalized values were changed to be consistently
|
||||||
``QuerySets`` instead of ``[]`` and ``QuerySet`` respectively.
|
``QuerySets`` instead of ``[]`` and ``QuerySet`` respectively.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The ``invalid_choice`` message may contain ``%(value)s`` and the
|
The ``invalid_choice`` message may contain ``%(value)s`` and the
|
||||||
``invalid_pk_value`` message may contain ``%(pk)s``, which will be
|
``invalid_pk_value`` message may contain ``%(pk)s``, which will be
|
||||||
substituted by the appropriate values.
|
substituted by the appropriate values.
|
||||||
|
|
|
@ -42,7 +42,7 @@ Model Form Functions
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The ``widgets`` and the ``validate_max`` parameters were added.
|
The ``widgets`` and the ``validate_max`` parameters were added.
|
||||||
|
|
||||||
.. function:: inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None, widgets=None, validate_max=False)
|
.. function:: inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None, widgets=None, validate_max=False)
|
||||||
|
|
||||||
|
@ -57,4 +57,4 @@ Model Form Functions
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The ``widgets`` and the ``validate_max`` parameters were added.
|
The ``widgets`` and the ``validate_max`` parameters were added.
|
||||||
|
|
|
@ -359,7 +359,7 @@ considering aren't valid, we must remember to remove them from the
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
Django used to remove the ``cleaned_data`` attribute entirely if there were
|
Django used to remove the ``cleaned_data`` attribute entirely if there were
|
||||||
any errors in the form. Since version 1.5, ``cleaned_data`` is present even if
|
any errors in the form. Since version 1.5, ``cleaned_data`` is present even if
|
||||||
the form doesn't validate, but it contains only field values that did
|
the form doesn't validate, but it contains only field values that did
|
||||||
validate.
|
validate.
|
||||||
|
|
|
@ -522,6 +522,7 @@ Selector and checkbox widgets
|
||||||
``True`` if the checkbox should be checked for that value.
|
``True`` if the checkbox should be checked for that value.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
Exceptions from ``check_test`` used to be silenced by its caller,
|
Exceptions from ``check_test`` used to be silenced by its caller,
|
||||||
this is no longer the case, they will propagate upwards.
|
this is no longer the case, they will propagate upwards.
|
||||||
|
|
||||||
|
|
|
@ -206,6 +206,7 @@ Transaction middleware
|
||||||
.. class:: TransactionMiddleware
|
.. class:: TransactionMiddleware
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
``TransactionMiddleware`` is deprecated. The documentation of transactions
|
``TransactionMiddleware`` is deprecated. The documentation of transactions
|
||||||
contains :ref:`upgrade instructions <transactions-upgrading-from-1.5>`.
|
contains :ref:`upgrade instructions <transactions-upgrading-from-1.5>`.
|
||||||
|
|
||||||
|
|
|
@ -378,6 +378,7 @@ If you need to accept :attr:`~Field.null` values then use
|
||||||
:class:`NullBooleanField` instead.
|
:class:`NullBooleanField` instead.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The default value of ``BooleanField`` was changed from ``False`` to
|
The default value of ``BooleanField`` was changed from ``False`` to
|
||||||
``None`` when :attr:`Field.default` isn't defined.
|
``None`` when :attr:`Field.default` isn't defined.
|
||||||
|
|
||||||
|
@ -956,8 +957,8 @@ Like all :class:`CharField` subclasses, :class:`URLField` takes the optional
|
||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionadded:: 1.5
|
||||||
|
|
||||||
The current value of the field will be displayed as a clickable link above the
|
The current value of the field will be displayed as a clickable link above the
|
||||||
input widget.
|
input widget.
|
||||||
|
|
||||||
|
|
||||||
Relationship fields
|
Relationship fields
|
||||||
|
|
|
@ -297,8 +297,9 @@ follows this algorithm:
|
||||||
didn't update anything, Django executes an ``INSERT``.
|
didn't update anything, Django executes an ``INSERT``.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
Previously Django used ``SELECT`` - if not found ``INSERT`` else ``UPDATE``
|
|
||||||
algorithm. The old algorithm resulted in one more query in ``UPDATE`` case.
|
Previously Django used ``SELECT`` - if not found ``INSERT`` else ``UPDATE``
|
||||||
|
algorithm. The old algorithm resulted in one more query in ``UPDATE`` case.
|
||||||
|
|
||||||
The one gotcha here is that you should be careful not to specify a primary-key
|
The one gotcha here is that you should be careful not to specify a primary-key
|
||||||
value explicitly when saving new objects, if you cannot guarantee the
|
value explicitly when saving new objects, if you cannot guarantee the
|
||||||
|
|
|
@ -554,11 +554,13 @@ Returns a ``DateQuerySet`` — a ``QuerySet`` that evaluates to a list of
|
||||||
particular kind within the contents of the ``QuerySet``.
|
particular kind within the contents of the ``QuerySet``.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
``dates`` used to return a list of :class:`datetime.datetime` objects.
|
``dates`` used to return a list of :class:`datetime.datetime` objects.
|
||||||
|
|
||||||
``field`` should be the name of a ``DateField`` of your model.
|
``field`` should be the name of a ``DateField`` of your model.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
``dates`` used to accept operating on a ``DateTimeField``.
|
``dates`` used to accept operating on a ``DateTimeField``.
|
||||||
|
|
||||||
``kind`` should be either ``"year"``, ``"month"`` or ``"day"``. Each
|
``kind`` should be either ``"year"``, ``"month"`` or ``"day"``. Each
|
||||||
|
@ -1121,11 +1123,11 @@ to ``defer()``::
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
Some fields in a model won't be deferred, even if you ask for them. You can
|
Some fields in a model won't be deferred, even if you ask for them. You can
|
||||||
never defer the loading of the primary key. If you are using
|
never defer the loading of the primary key. If you are using
|
||||||
:meth:`select_related()` to retrieve related models, you shouldn't defer the
|
:meth:`select_related()` to retrieve related models, you shouldn't defer the
|
||||||
loading of the field that connects from the primary model to the related
|
loading of the field that connects from the primary model to the related
|
||||||
one, doing so will result in an error.
|
one, doing so will result in an error.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
@ -1193,20 +1195,20 @@ logically::
|
||||||
# existing set of fields).
|
# existing set of fields).
|
||||||
Entry.objects.defer("body").only("headline", "body")
|
Entry.objects.defer("body").only("headline", "body")
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
|
||||||
|
|
||||||
All of the cautions in the note for the :meth:`defer` documentation apply to
|
All of the cautions in the note for the :meth:`defer` documentation apply to
|
||||||
``only()`` as well. Use it cautiously and only after exhausting your other
|
``only()`` as well. Use it cautiously and only after exhausting your other
|
||||||
options. Also note that using :meth:`only` and omitting a field requested
|
options.
|
||||||
using :meth:`select_related` is an error as well.
|
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
.. note::
|
Using :meth:`only` and omitting a field requested using
|
||||||
|
:meth:`select_related` is an error as well.
|
||||||
|
|
||||||
When calling :meth:`~django.db.models.Model.save()` for instances with
|
.. note::
|
||||||
deferred fields, only the loaded fields will be saved. See
|
|
||||||
:meth:`~django.db.models.Model.save()` for more details.
|
When calling :meth:`~django.db.models.Model.save()` for instances with
|
||||||
|
deferred fields, only the loaded fields will be saved. See
|
||||||
|
:meth:`~django.db.models.Model.save()` for more details.
|
||||||
|
|
||||||
using
|
using
|
||||||
~~~~~
|
~~~~~
|
||||||
|
@ -1424,6 +1426,7 @@ query. The default is to create all objects in one batch, except for SQLite
|
||||||
where the default is such that at maximum 999 variables per query is used.
|
where the default is such that at maximum 999 variables per query is used.
|
||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionadded:: 1.5
|
||||||
|
|
||||||
The ``batch_size`` parameter was added in version 1.5.
|
The ``batch_size`` parameter was added in version 1.5.
|
||||||
|
|
||||||
count
|
count
|
||||||
|
@ -1725,7 +1728,8 @@ methods on your models. It does, however, emit the
|
||||||
(including cascaded deletions).
|
(including cascaded deletions).
|
||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionadded:: 1.5
|
||||||
Allow fast-path deletion of objects
|
|
||||||
|
Allow fast-path deletion of objects.
|
||||||
|
|
||||||
Django needs to fetch objects into memory to send signals and handle cascades.
|
Django needs to fetch objects into memory to send signals and handle cascades.
|
||||||
However, if there are no cascades and no signals, then Django may take a
|
However, if there are no cascades and no signals, then Django may take a
|
||||||
|
|
|
@ -94,6 +94,7 @@ All attributes should be considered read-only, unless stated otherwise below.
|
||||||
:attr:`HttpRequest.body` attribute instead.
|
:attr:`HttpRequest.body` attribute instead.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
Before Django 1.5, HttpRequest.POST contained non-form data.
|
Before Django 1.5, HttpRequest.POST contained non-form data.
|
||||||
|
|
||||||
It's possible that a request can come in via POST with an empty ``POST``
|
It's possible that a request can come in via POST with an empty ``POST``
|
||||||
|
@ -563,19 +564,19 @@ streaming response if (and only if) no middleware accesses the
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
This technique is fragile and was deprecated in Django 1.5. If you need the
|
This technique is fragile and was deprecated in Django 1.5. If you need the
|
||||||
response to be streamed from the iterator to the client, you should use the
|
response to be streamed from the iterator to the client, you should use the
|
||||||
:class:`StreamingHttpResponse` class instead.
|
:class:`StreamingHttpResponse` class instead.
|
||||||
|
|
||||||
As of Django 1.7, when :class:`HttpResponse` is instantiated with an
|
As of Django 1.7, when :class:`HttpResponse` is instantiated with an
|
||||||
iterator, it will consume it immediately, store the response content as a
|
iterator, it will consume it immediately, store the response content as a
|
||||||
string, and discard the iterator.
|
string, and discard the iterator.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
You can now use :class:`HttpResponse` as a file-like object even if it was
|
You can now use :class:`HttpResponse` as a file-like object even if it was
|
||||||
instantiated with an iterator. Django will consume and save the content of
|
instantiated with an iterator. Django will consume and save the content of
|
||||||
the iterator on first access.
|
the iterator on first access.
|
||||||
|
|
||||||
Setting headers
|
Setting headers
|
||||||
~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~
|
||||||
|
|
|
@ -1486,6 +1486,7 @@ randomly-generated ``SECRET_KEY`` to each new project.
|
||||||
execution vulnerabilities.
|
execution vulnerabilities.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
Django will now refuse to start if :setting:`SECRET_KEY` is not set.
|
Django will now refuse to start if :setting:`SECRET_KEY` is not set.
|
||||||
|
|
||||||
.. setting:: SECURE_PROXY_SSL_HEADER
|
.. setting:: SECURE_PROXY_SSL_HEADER
|
||||||
|
@ -1771,7 +1772,7 @@ See also :setting:`DATE_INPUT_FORMATS` and :setting:`DATETIME_INPUT_FORMATS`.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
Input format with microseconds has been added.
|
Input format with microseconds has been added.
|
||||||
|
|
||||||
.. _datetime: http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
.. _datetime: http://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||||
|
|
||||||
|
@ -2055,11 +2056,11 @@ decorator, for example.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
This setting now also accepts view function names and
|
This setting now also accepts view function names and
|
||||||
:ref:`named URL patterns <naming-url-patterns>` which can be used to reduce
|
:ref:`named URL patterns <naming-url-patterns>` which can be used to reduce
|
||||||
configuration duplication since you no longer have to define the URL in two
|
configuration duplication since you no longer have to define the URL in two
|
||||||
places (``settings`` and URLconf).
|
places (``settings`` and URLconf).
|
||||||
For backward compatibility reasons the default remains unchanged.
|
For backward compatibility reasons the default remains unchanged.
|
||||||
|
|
||||||
.. setting:: LOGIN_URL
|
.. setting:: LOGIN_URL
|
||||||
|
|
||||||
|
@ -2073,11 +2074,11 @@ The URL where requests are redirected for login, especially when using the
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
This setting now also accepts view function names and
|
This setting now also accepts view function names and
|
||||||
:ref:`named URL patterns <naming-url-patterns>` which can be used to reduce
|
:ref:`named URL patterns <naming-url-patterns>` which can be used to reduce
|
||||||
configuration duplication since you no longer have to define the URL in two
|
configuration duplication since you no longer have to define the URL in two
|
||||||
places (``settings`` and URLconf).
|
places (``settings`` and URLconf).
|
||||||
For backward compatibility reasons the default remains unchanged.
|
For backward compatibility reasons the default remains unchanged.
|
||||||
|
|
||||||
.. setting:: LOGOUT_URL
|
.. setting:: LOGOUT_URL
|
||||||
|
|
||||||
|
|
|
@ -78,13 +78,13 @@ Methods
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
Historically, this parameter was only called ``mimetype`` (now
|
Historically, this parameter was only called ``mimetype`` (now
|
||||||
deprecated), but since this is actually the value included in the HTTP
|
deprecated), but since this is actually the value included in the HTTP
|
||||||
``Content-Type`` header, it can also include the character set
|
``Content-Type`` header, it can also include the character set
|
||||||
encoding, which makes it more than just a MIME type specification. If
|
encoding, which makes it more than just a MIME type specification. If
|
||||||
``mimetype`` is specified (not ``None``), that value is used.
|
``mimetype`` is specified (not ``None``), that value is used.
|
||||||
Otherwise, ``content_type`` is used. If neither is given,
|
Otherwise, ``content_type`` is used. If neither is given,
|
||||||
:setting:`DEFAULT_CONTENT_TYPE` is used.
|
:setting:`DEFAULT_CONTENT_TYPE` is used.
|
||||||
|
|
||||||
|
|
||||||
.. method:: SimpleTemplateResponse.resolve_context(context)
|
.. method:: SimpleTemplateResponse.resolve_context(context)
|
||||||
|
|
|
@ -272,6 +272,7 @@ Every context contains ``True``, ``False`` and ``None``. As you would expect,
|
||||||
these variables resolve to the corresponding Python objects.
|
these variables resolve to the corresponding Python objects.
|
||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionadded:: 1.5
|
||||||
|
|
||||||
Before Django 1.5, these variables weren't a special case, and they
|
Before Django 1.5, these variables weren't a special case, and they
|
||||||
resolved to ``None`` unless you defined them in the context.
|
resolved to ``None`` unless you defined them in the context.
|
||||||
|
|
||||||
|
|
|
@ -191,19 +191,19 @@ call to ``{% cycle %}`` doesn't specify silent::
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
To improve safety, future versions of ``cycle`` will automatically escape
|
To improve safety, future versions of ``cycle`` will automatically escape
|
||||||
their output. You're encouraged to activate this behavior by loading
|
their output. You're encouraged to activate this behavior by loading
|
||||||
``cycle`` from the ``future`` template library::
|
``cycle`` from the ``future`` template library::
|
||||||
|
|
||||||
{% load cycle from future %}
|
{% load cycle from future %}
|
||||||
|
|
||||||
When using the ``future`` version, you can disable auto-escaping with::
|
When using the ``future`` version, you can disable auto-escaping with::
|
||||||
|
|
||||||
{% for o in some_list %}
|
{% for o in some_list %}
|
||||||
<tr class="{% autoescape off %}{% cycle rowvalue1 rowvalue2 %}{% endautoescape %}">
|
<tr class="{% autoescape off %}{% cycle rowvalue1 rowvalue2 %}{% endautoescape %}">
|
||||||
...
|
...
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
.. templatetag:: debug
|
.. templatetag:: debug
|
||||||
|
|
||||||
|
@ -294,21 +294,21 @@ to escape the variables in the firstof tag, you must do so explicitly::
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
To improve safety, future versions of ``firstof`` will automatically escape
|
To improve safety, future versions of ``firstof`` will automatically escape
|
||||||
their output. You're encouraged to activate this behavior by loading
|
their output. You're encouraged to activate this behavior by loading
|
||||||
``firstof`` from the ``future`` template library::
|
``firstof`` from the ``future`` template library::
|
||||||
|
|
||||||
{% load firstof from future %}
|
{% load firstof from future %}
|
||||||
|
|
||||||
When using the ``future`` version, you can disable auto-escaping with::
|
When using the ``future`` version, you can disable auto-escaping with::
|
||||||
|
|
||||||
{% autoescape off %}
|
{% autoescape off %}
|
||||||
{% firstof var1 var2 var3 "<strong>fallback value</strong>" %}
|
{% firstof var1 var2 var3 "<strong>fallback value</strong>" %}
|
||||||
{% endautoescape %}
|
{% endautoescape %}
|
||||||
|
|
||||||
Or if only some variables should be escaped, you can use::
|
Or if only some variables should be escaped, you can use::
|
||||||
|
|
||||||
{% firstof var1 var2|safe var3 "<strong>fallback value</strong>"|safe %}
|
{% firstof var1 var2|safe var3 "<strong>fallback value</strong>"|safe %}
|
||||||
|
|
||||||
.. templatetag:: for
|
.. templatetag:: for
|
||||||
|
|
||||||
|
@ -1065,6 +1065,7 @@ by the context as to the current application.
|
||||||
Don't forget to put quotes around the function path or pattern name!
|
Don't forget to put quotes around the function path or pattern name!
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The first parameter used not to be quoted, which was inconsistent with
|
The first parameter used not to be quoted, which was inconsistent with
|
||||||
other template tags. Since Django 1.5, it is evaluated according to
|
other template tags. Since Django 1.5, it is evaluated according to
|
||||||
the usual rules: it can be a quoted string or a variable that will be
|
the usual rules: it can be a quoted string or a variable that will be
|
||||||
|
|
|
@ -47,26 +47,26 @@ You can use Unicode strings, or you can use normal strings (sometimes called
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
In Python 3, the logic is reversed, that is normal strings are Unicode, and
|
In Python 3, the logic is reversed, that is normal strings are Unicode, and
|
||||||
when you want to specifically create a bytestring, you have to prefix the
|
when you want to specifically create a bytestring, you have to prefix the
|
||||||
string with a 'b'. As we are doing in Django code from version 1.5,
|
string with a 'b'. As we are doing in Django code from version 1.5,
|
||||||
we recommend that you import ``unicode_literals`` from the __future__ library
|
we recommend that you import ``unicode_literals`` from the __future__ library
|
||||||
in your code. Then, when you specifically want to create a bytestring literal,
|
in your code. Then, when you specifically want to create a bytestring literal,
|
||||||
prefix the string with 'b'.
|
prefix the string with 'b'.
|
||||||
|
|
||||||
Python 2 legacy::
|
Python 2 legacy::
|
||||||
|
|
||||||
my_string = "This is a bytestring"
|
my_string = "This is a bytestring"
|
||||||
my_unicode = u"This is an Unicode string"
|
my_unicode = u"This is an Unicode string"
|
||||||
|
|
||||||
Python 2 with unicode literals or Python 3::
|
Python 2 with unicode literals or Python 3::
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
my_string = b"This is a bytestring"
|
my_string = b"This is a bytestring"
|
||||||
my_unicode = "This is an Unicode string"
|
my_unicode = "This is an Unicode string"
|
||||||
|
|
||||||
See also :doc:`Python 3 compatibility </topics/python3>`.
|
See also :doc:`Python 3 compatibility </topics/python3>`.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,7 @@ We can't possibly document everything that's new in 1.0, but the documentation
|
||||||
will be your definitive guide. Anywhere you see something like:
|
will be your definitive guide. Anywhere you see something like:
|
||||||
|
|
||||||
.. versionadded:: 1.0
|
.. versionadded:: 1.0
|
||||||
|
|
||||||
This feature is new in Django 1.0
|
This feature is new in Django 1.0
|
||||||
|
|
||||||
You'll know that you're looking at something new or changed.
|
You'll know that you're looking at something new or changed.
|
||||||
|
|
|
@ -83,9 +83,9 @@ processing at the first positive match.
|
||||||
|
|
||||||
.. versionadded:: 1.6
|
.. versionadded:: 1.6
|
||||||
|
|
||||||
If a backend raises a :class:`~django.core.exceptions.PermissionDenied`
|
If a backend raises a :class:`~django.core.exceptions.PermissionDenied`
|
||||||
exception, authentication will immediately fail. Django won't check the
|
exception, authentication will immediately fail. Django won't check the
|
||||||
backends that follow.
|
backends that follow.
|
||||||
|
|
||||||
Writing an authentication backend
|
Writing an authentication backend
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
|
@ -435,10 +435,10 @@ The login_required decorator
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The :setting:`settings.LOGIN_URL <LOGIN_URL>` also accepts
|
The :setting:`settings.LOGIN_URL <LOGIN_URL>` also accepts
|
||||||
view function names and :ref:`named URL patterns <naming-url-patterns>`.
|
view function names and :ref:`named URL patterns <naming-url-patterns>`.
|
||||||
This allows you to freely remap your login view within your URLconf
|
This allows you to freely remap your login view within your URLconf
|
||||||
without having to update the setting.
|
without having to update the setting.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
@ -759,6 +759,7 @@ patterns.
|
||||||
mail will be sent either.
|
mail will be sent either.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
Previously, error messages indicated whether a given email was
|
Previously, error messages indicated whether a given email was
|
||||||
registered.
|
registered.
|
||||||
|
|
||||||
|
@ -1041,6 +1042,7 @@ Thus, you can check permissions in template ``{% if %}`` statements:
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionadded:: 1.5
|
||||||
|
|
||||||
Permission lookup by "if in".
|
Permission lookup by "if in".
|
||||||
|
|
||||||
It is possible to also look permissions up by ``{% if in %}`` statements.
|
It is possible to also look permissions up by ``{% if in %}`` statements.
|
||||||
|
|
|
@ -176,6 +176,7 @@ your choice of default manager in order to avoid a situation where overriding
|
||||||
work with.
|
work with.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The ``get_queryset`` method was previously named ``get_query_set``.
|
The ``get_queryset`` method was previously named ``get_query_set``.
|
||||||
|
|
||||||
.. _managers-for-related-objects:
|
.. _managers-for-related-objects:
|
||||||
|
|
|
@ -681,6 +681,7 @@ In addition, some objects are automatically created just after
|
||||||
database).
|
database).
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
Previously, ``ContentType`` and ``Permission`` instances were created only
|
Previously, ``ContentType`` and ``Permission`` instances were created only
|
||||||
in the default database.
|
in the default database.
|
||||||
|
|
||||||
|
|
|
@ -638,6 +638,7 @@ that were modified more than 3 days after they were published::
|
||||||
>>> Entry.objects.filter(mod_date__gt=F('pub_date') + timedelta(days=3))
|
>>> Entry.objects.filter(mod_date__gt=F('pub_date') + timedelta(days=3))
|
||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionadded:: 1.5
|
||||||
|
|
||||||
``.bitand()`` and ``.bitor()``
|
``.bitand()`` and ``.bitor()``
|
||||||
|
|
||||||
The ``F()`` objects now support bitwise operations by ``.bitand()`` and
|
The ``F()`` objects now support bitwise operations by ``.bitand()`` and
|
||||||
|
@ -646,6 +647,7 @@ The ``F()`` objects now support bitwise operations by ``.bitand()`` and
|
||||||
>>> F('somefield').bitand(16)
|
>>> F('somefield').bitand(16)
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The previously undocumented operators ``&`` and ``|`` no longer produce
|
The previously undocumented operators ``&`` and ``|`` no longer produce
|
||||||
bitwise operations, use ``.bitand()`` and ``.bitor()`` instead.
|
bitwise operations, use ``.bitand()`` and ``.bitor()`` instead.
|
||||||
|
|
||||||
|
|
|
@ -222,6 +222,7 @@ For example::
|
||||||
return row
|
return row
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
In Django 1.5 and earlier, after performing a data changing operation, you
|
In Django 1.5 and earlier, after performing a data changing operation, you
|
||||||
had to call ``transaction.commit_unless_managed()`` to ensure your changes
|
had to call ``transaction.commit_unless_managed()`` to ensure your changes
|
||||||
were committed to the database. Since Django now defaults to database-level
|
were committed to the database. Since Django now defaults to database-level
|
||||||
|
|
|
@ -22,6 +22,7 @@ integrity of ORM operations that require multiple queries, especially
|
||||||
<topics-db-queries-update>` queries.
|
<topics-db-queries-update>` queries.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
Previous version of Django featured :ref:`a more complicated default
|
Previous version of Django featured :ref:`a more complicated default
|
||||||
behavior <transactions-upgrading-from-1.5>`.
|
behavior <transactions-upgrading-from-1.5>`.
|
||||||
|
|
||||||
|
@ -78,6 +79,7 @@ Middleware run outside of the transaction, and so does the rendering of
|
||||||
template responses.
|
template responses.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
Django used to provide this feature via ``TransactionMiddleware``, which is
|
Django used to provide this feature via ``TransactionMiddleware``, which is
|
||||||
now deprecated.
|
now deprecated.
|
||||||
|
|
||||||
|
@ -204,6 +206,7 @@ To avoid this, you can :ref:`deactivate the transaction management
|
||||||
<deactivate-transaction-management>`, but it isn't recommended.
|
<deactivate-transaction-management>`, but it isn't recommended.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
Before Django 1.6, autocommit was turned off, and it was emulated by
|
Before Django 1.6, autocommit was turned off, and it was emulated by
|
||||||
forcing a commit after write operations in the ORM.
|
forcing a commit after write operations in the ORM.
|
||||||
|
|
||||||
|
@ -224,6 +227,7 @@ where you want to run your own transaction-controlling middleware or do
|
||||||
something really strange.
|
something really strange.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
This used to be controlled by the ``TRANSACTIONS_MANAGED`` setting.
|
This used to be controlled by the ``TRANSACTIONS_MANAGED`` setting.
|
||||||
|
|
||||||
Low-level APIs
|
Low-level APIs
|
||||||
|
@ -312,10 +316,10 @@ rollback that would be performed by ``transaction.rollback()``.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
When the :func:`atomic` decorator is nested, it creates a savepoint to allow
|
When the :func:`atomic` decorator is nested, it creates a savepoint to allow
|
||||||
partial commit or rollback. You're strongly encouraged to use :func:`atomic`
|
partial commit or rollback. You're strongly encouraged to use :func:`atomic`
|
||||||
rather than the functions described below, but they're still part of the
|
rather than the functions described below, but they're still part of the
|
||||||
public API, and there's no plan to deprecate them.
|
public API, and there's no plan to deprecate them.
|
||||||
|
|
||||||
Each of these functions takes a ``using`` argument which should be the name of
|
Each of these functions takes a ``using`` argument which should be the name of
|
||||||
a database for which the behavior applies. If no ``using`` argument is
|
a database for which the behavior applies. If no ``using`` argument is
|
||||||
|
@ -354,20 +358,20 @@ The following example demonstrates the use of savepoints::
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def viewfunc(request):
|
def viewfunc(request):
|
||||||
|
|
||||||
a.save()
|
a.save()
|
||||||
# transaction now contains a.save()
|
# transaction now contains a.save()
|
||||||
|
|
||||||
sid = transaction.savepoint()
|
sid = transaction.savepoint()
|
||||||
|
|
||||||
b.save()
|
b.save()
|
||||||
# transaction now contains a.save() and b.save()
|
# transaction now contains a.save() and b.save()
|
||||||
|
|
||||||
if want_to_keep_b:
|
if want_to_keep_b:
|
||||||
transaction.savepoint_commit(sid)
|
transaction.savepoint_commit(sid)
|
||||||
# open transaction still contains a.save() and b.save()
|
# open transaction still contains a.save() and b.save()
|
||||||
else:
|
else:
|
||||||
transaction.savepoint_rollback(sid)
|
transaction.savepoint_rollback(sid)
|
||||||
# open transaction now contains only a.save()
|
# open transaction now contains only a.save()
|
||||||
|
|
||||||
Database-specific notes
|
Database-specific notes
|
||||||
=======================
|
=======================
|
||||||
|
|
|
@ -111,6 +111,7 @@ affect validation. If ``validate_max=True`` is passed to the
|
||||||
validation. See :ref:`validate_max`.
|
validation. See :ref:`validate_max`.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The ``validate_max`` parameter was added to
|
The ``validate_max`` parameter was added to
|
||||||
:func:`~django.forms.formsets.formset_factory`. Also, the behavior of
|
:func:`~django.forms.formsets.formset_factory`. Also, the behavior of
|
||||||
``FormSet`` was brought in line with that of ``ModelFormSet`` so that it
|
``FormSet`` was brought in line with that of ``ModelFormSet`` so that it
|
||||||
|
@ -310,6 +311,7 @@ should use custom formset validation.
|
||||||
using forged POST requests.
|
using forged POST requests.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The ``validate_max`` parameter was added to
|
The ``validate_max`` parameter was added to
|
||||||
:func:`~django.forms.formsets.formset_factory`.
|
:func:`~django.forms.formsets.formset_factory`.
|
||||||
|
|
||||||
|
|
|
@ -204,6 +204,7 @@ Dealing with streaming responses
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
``response`` may also be an :class:`~django.http.StreamingHttpResponse`
|
``response`` may also be an :class:`~django.http.StreamingHttpResponse`
|
||||||
object.
|
object.
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,7 @@ default cache. To use another cache, set :setting:`SESSION_CACHE_ALIAS` to the
|
||||||
name of that cache.
|
name of that cache.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The :setting:`SESSION_CACHE_ALIAS` setting was added.
|
The :setting:`SESSION_CACHE_ALIAS` setting was added.
|
||||||
|
|
||||||
Once your cache is configured, you've got two choices for how to store data in
|
Once your cache is configured, you've got two choices for how to store data in
|
||||||
|
@ -451,6 +452,7 @@ Similarly, the ``expires`` part of a session cookie is updated each time the
|
||||||
session cookie is sent.
|
session cookie is sent.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The session is not saved if the response's status code is 500.
|
The session is not saved if the response's status code is 500.
|
||||||
|
|
||||||
.. _browser-length-vs-persistent-sessions:
|
.. _browser-length-vs-persistent-sessions:
|
||||||
|
|
|
@ -51,6 +51,7 @@ Optional arguments
|
||||||
the :setting:`DEFAULT_CONTENT_TYPE` setting.
|
the :setting:`DEFAULT_CONTENT_TYPE` setting.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
This parameter used to be called ``mimetype``.
|
This parameter used to be called ``mimetype``.
|
||||||
|
|
||||||
``status``
|
``status``
|
||||||
|
@ -129,6 +130,7 @@ Optional arguments
|
||||||
the :setting:`DEFAULT_CONTENT_TYPE` setting.
|
the :setting:`DEFAULT_CONTENT_TYPE` setting.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
This parameter used to be called ``mimetype``.
|
This parameter used to be called ``mimetype``.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1529,6 +1529,7 @@ selection based on data from the request. It customizes content for each user.
|
||||||
``'django.middleware.locale.LocaleMiddleware'``.
|
``'django.middleware.locale.LocaleMiddleware'``.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
In previous versions, ``LocaleMiddleware`` wasn't enabled by default.
|
In previous versions, ``LocaleMiddleware`` wasn't enabled by default.
|
||||||
|
|
||||||
Because middleware order matters, you should follow these guidelines:
|
Because middleware order matters, you should follow these guidelines:
|
||||||
|
|
|
@ -252,7 +252,7 @@ Methods
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
Raises :exc:`InvalidPage` if next page doesn't exist.
|
Raises :exc:`InvalidPage` if next page doesn't exist.
|
||||||
|
|
||||||
.. method:: Page.previous_page_number()
|
.. method:: Page.previous_page_number()
|
||||||
|
|
||||||
|
@ -260,7 +260,7 @@ Methods
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
Raises :exc:`InvalidPage` if previous page doesn't exist.
|
Raises :exc:`InvalidPage` if previous page doesn't exist.
|
||||||
|
|
||||||
.. method:: Page.start_index()
|
.. method:: Page.start_index()
|
||||||
|
|
||||||
|
|
|
@ -124,8 +124,8 @@ Calling ``DeserializedObject.save()`` saves the object to the database.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
In previous versions of Django, the ``pk`` attribute had to be present
|
In previous versions of Django, the ``pk`` attribute had to be present
|
||||||
on the serialized data or a ``DeserializationError`` would be raised.
|
on the serialized data or a ``DeserializationError`` would be raised.
|
||||||
|
|
||||||
This ensures that deserializing is a non-destructive operation even if the
|
This ensures that deserializing is a non-destructive operation even if the
|
||||||
data in your serialized representation doesn't match what's currently in the
|
data in your serialized representation doesn't match what's currently in the
|
||||||
|
@ -144,11 +144,11 @@ The Django object itself can be inspected as ``deserialized_object.object``.
|
||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionadded:: 1.5
|
||||||
|
|
||||||
If fields in the serialized data do not exist on a model,
|
If fields in the serialized data do not exist on a model,
|
||||||
a ``DeserializationError`` will be raised unless the ``ignorenonexistent``
|
a ``DeserializationError`` will be raised unless the ``ignorenonexistent``
|
||||||
argument is passed in as True::
|
argument is passed in as True::
|
||||||
|
|
||||||
serializers.deserialize("xml", data, ignorenonexistent=True)
|
serializers.deserialize("xml", data, ignorenonexistent=True)
|
||||||
|
|
||||||
.. _serialization-formats:
|
.. _serialization-formats:
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,7 @@ to.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The ability to pass a list of signals was added.
|
The ability to pass a list of signals was added.
|
||||||
|
|
||||||
.. admonition:: Where should this code live?
|
.. admonition:: Where should this code live?
|
||||||
|
|
||||||
|
|
|
@ -235,6 +235,7 @@ the Django test runner reorders tests in the following way:
|
||||||
restoring it to its original state are run.
|
restoring it to its original state are run.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
Before Django 1.5, the only guarantee was that
|
Before Django 1.5, the only guarantee was that
|
||||||
:class:`~django.test.TestCase` tests were always ran first, before any other
|
:class:`~django.test.TestCase` tests were always ran first, before any other
|
||||||
tests.
|
tests.
|
||||||
|
@ -612,6 +613,7 @@ Use the ``django.test.client.Client`` class to make requests.
|
||||||
a ``Content-Type`` header is set to ``content_type``.
|
a ``Content-Type`` header is set to ``content_type``.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
:meth:`Client.options` used to process ``data`` like
|
:meth:`Client.options` used to process ``data`` like
|
||||||
:meth:`Client.get`.
|
:meth:`Client.get`.
|
||||||
|
|
||||||
|
@ -627,6 +629,7 @@ Use the ``django.test.client.Client`` class to make requests.
|
||||||
a ``Content-Type`` header is set to ``content_type``.
|
a ``Content-Type`` header is set to ``content_type``.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
:meth:`Client.put` used to process ``data`` like
|
:meth:`Client.put` used to process ``data`` like
|
||||||
:meth:`Client.post`.
|
:meth:`Client.post`.
|
||||||
|
|
||||||
|
@ -650,6 +653,7 @@ Use the ``django.test.client.Client`` class to make requests.
|
||||||
a ``Content-Type`` header is set to ``content_type``.
|
a ``Content-Type`` header is set to ``content_type``.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
:meth:`Client.delete` used to process ``data`` like
|
:meth:`Client.delete` used to process ``data`` like
|
||||||
:meth:`Client.get`.
|
:meth:`Client.get`.
|
||||||
|
|
||||||
|
@ -940,6 +944,7 @@ to test the effects of commit and rollback:
|
||||||
the test has been properly updated.
|
the test has been properly updated.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The order in which tests are run has changed. See `Order in which tests are
|
The order in which tests are run has changed. See `Order in which tests are
|
||||||
executed`_.
|
executed`_.
|
||||||
|
|
||||||
|
@ -990,6 +995,7 @@ additions, including:
|
||||||
errors.
|
errors.
|
||||||
|
|
||||||
.. versionchanged:: 1.5
|
.. versionchanged:: 1.5
|
||||||
|
|
||||||
The order in which tests are run has changed. See `Order in which tests are
|
The order in which tests are run has changed. See `Order in which tests are
|
||||||
executed`_.
|
executed`_.
|
||||||
|
|
||||||
|
@ -1581,6 +1587,7 @@ your test suite.
|
||||||
``False``, which turns the comparison into a Python set comparison.
|
``False``, which turns the comparison into a Python set comparison.
|
||||||
|
|
||||||
.. versionchanged:: 1.6
|
.. versionchanged:: 1.6
|
||||||
|
|
||||||
The method now checks for undefined order and raises ``ValueError``
|
The method now checks for undefined order and raises ``ValueError``
|
||||||
if undefined order is spotted. The ordering is seen as undefined if
|
if undefined order is spotted. The ordering is seen as undefined if
|
||||||
the given ``qs`` isn't ordered and the comparison is against more
|
the given ``qs`` isn't ordered and the comparison is against more
|
||||||
|
|
Loading…
Reference in New Issue