Removed versionadded/changed annotations for 1.6.

This commit is contained in:
Tim Graham 2014-03-24 11:42:56 -04:00
parent ec08d62a20
commit 51c8045145
54 changed files with 70 additions and 550 deletions

View File

@ -269,10 +269,6 @@ All attributes can be set in your derived class and can be used in
because attempting to set the locale needs access to settings. This condition
will generate a :class:`CommandError`.
.. versionadded:: 1.6
The ``leave_locale_alone`` option was added in Django 1.6.
Methods
-------

View File

@ -74,11 +74,6 @@ with Django you'd need to change the ``managed`` option highlighted above to
This serves as an explicit opt-in to give your nascent Django project write
access to your precious data on a model by model basis.
.. versionchanged:: 1.6
The behavior by which introspected models are created as unmanaged ones is new
in Django 1.6.
Install the core Django tables
==============================

View File

@ -213,8 +213,6 @@ RedirectView
.. attribute:: pattern_name
.. versionadded:: 1.6
The name of the URL pattern to redirect to. Reversing will be done
using the same args and kwargs as are passed in for this view.
@ -238,10 +236,6 @@ RedirectView
Constructs the target URL for redirection.
.. versionchanged:: 1.6
The signature of this method was changed to include ``*args``.
The default implementation uses :attr:`url` as a starting
string and performs expansion of ``%`` named parameters in that string
using the named groups captured in the URL.

View File

@ -37,8 +37,6 @@ FormMixin
.. attribute:: prefix
.. versionadded:: 1.6
The :attr:`~django.forms.Form.prefix` for the generated form.
.. method:: get_initial()
@ -66,8 +64,6 @@ FormMixin
.. method:: get_prefix()
.. versionadded:: 1.6
Determine the :attr:`~django.forms.Form.prefix` for the generated form.
Returns :attr:`~django.views.generic.edit.FormMixin.prefix` by default.
@ -234,12 +230,10 @@ DeletionMixin
The url to redirect to when the nominated object has been
successfully deleted.
.. versionadded:: 1.6
``success_url`` may contain dictionary string formatting, which
will be interpolated against the object's field attributes. For
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.
``success_url`` may contain dictionary string formatting, which will be
interpolated against the object's field attributes. For 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.
.. method:: get_success_url()

View File

@ -81,8 +81,6 @@ MultipleObjectMixin
.. attribute:: paginate_orphans
.. versionadded:: 1.6
An integer specifying the number of "overflow" objects the last page
can contain. This extends the :attr:`paginate_by` limit on the last
page by up to ``paginate_orphans``, in order to keep the last page from
@ -135,8 +133,6 @@ MultipleObjectMixin
.. method:: get_paginate_orphans()
.. versionadded:: 1.6
An integer specifying the number of "overflow" objects the last page
can contain. By default this simply returns the value of
:attr:`paginate_orphans`.

View File

@ -61,10 +61,8 @@ To set the same ``X-Frame-Options`` value for all responses in your site, put
...
)
.. versionchanged:: 1.6
This middleware is enabled in the settings file generated by
:djadmin:`startproject`.
This middleware is enabled in the settings file generated by
:djadmin:`startproject`.
By default, the middleware will set the ``X-Frame-Options`` header to
``SAMEORIGIN`` for every outgoing ``HttpResponse``. If you want ``DENY``

View File

@ -17,10 +17,6 @@ Overview
The admin is enabled in the default project template used by
:djadmin:`startproject`.
.. versionchanged:: 1.6
In previous versions, the admin wasn't enabled by default.
For reference, here are the requirements:
1. Add ``'django.contrib.admin'`` to your :setting:`INSTALLED_APPS` setting.
@ -419,8 +415,6 @@ subclass::
.. admonition:: Note
.. versionchanged:: 1.6
If you define the ``Meta.model`` attribute on a
:class:`~django.forms.ModelForm`, you must also define the
``Meta.fields`` attribute (or the ``Meta.exclude`` attribute). However,
@ -693,9 +687,7 @@ subclass::
list_display = ('full_name',)
* .. versionadded:: 1.6
The field names in ``list_display`` will also appear as CSS classes in
* The field names in ``list_display`` will also appear as CSS classes in
the HTML output, in the form of ``column-<field_name>`` on each ``<th>``
element. This can be used to set column widths in a CSS file for example.
@ -918,8 +910,6 @@ subclass::
the list of objects on the admin change list page. This can save you a
bunch of database queries.
.. versionchanged:: 1.6
The value should be either a boolean, a list or a tuple. Default is
``False``.
@ -978,8 +968,6 @@ subclass::
.. attribute:: ModelAdmin.preserve_filters
.. versionadded:: 1.6
The admin now preserves filters on the list view after creating, editing
or deleting an object. You can restore the previous behavior of clearing
filters by setting this attribute to ``False``.
@ -1286,8 +1274,6 @@ templates used by the :class:`ModelAdmin` views:
.. method:: ModelAdmin.get_search_results(request, queryset, search_term)
.. versionadded:: 1.6
The ``get_search_results`` method modifies the list of objects displayed in
to those that match the provided search term. It accepts the request, a
queryset that applies the current filters, and the user-provided search term.
@ -1598,8 +1584,6 @@ templates used by the :class:`ModelAdmin` views:
.. admonition:: Note
.. versionchanged:: 1.6
If you define the ``Meta.model`` attribute on a
:class:`~django.forms.ModelForm`, you must also define the
``Meta.fields`` attribute (or the ``Meta.exclude`` attribute). However,
@ -1659,10 +1643,6 @@ templates used by the :class:`ModelAdmin` views:
return qs
return qs.filter(author=request.user)
.. versionchanged:: 1.6
The ``get_queryset`` method was previously named ``queryset``.
.. method:: ModelAdmin.message_user(request, message, level=messages.INFO, extra_tags='', fail_silently=False)
Sends a message to the user using the :mod:`django.contrib.messages`
@ -1817,10 +1797,6 @@ To avoid conflicts with user-supplied scripts or libraries, Django's jQuery
in your own admin JavaScript without including a second copy, you can use the
``django.jQuery`` object on changelist and add/edit views.
.. versionchanged:: 1.6
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
to add jQuery to your ``ModelAdmin``s list of media resources unless you have
a specific need. For example, if you require the jQuery library to be in the
@ -1975,8 +1951,6 @@ The ``InlineModelAdmin`` class adds:
The dynamic link will not appear if the number of currently displayed forms
exceeds ``max_num``, or if the user does not have JavaScript enabled.
.. versionadded:: 1.6
:meth:`InlineModelAdmin.get_extra` also allows you to customize the number
of extra forms.
@ -1988,8 +1962,6 @@ The ``InlineModelAdmin`` class adds:
doesn't directly correlate to the number of objects, but can if the value
is small enough. See :ref:`model-formsets-max-num` for more information.
.. versionadded:: 1.6
:meth:`InlineModelAdmin.get_max_num` also allows you to customize the
maximum number of extra forms.
@ -2035,8 +2007,6 @@ The ``InlineModelAdmin`` class adds:
.. method:: InlineModelAdmin.get_extra(request, obj=None, **kwargs)
.. versionadded:: 1.6
Returns the number of extra inline forms to use. By default, returns the
:attr:`InlineModelAdmin.extra` attribute.
@ -2055,8 +2025,6 @@ The ``InlineModelAdmin`` class adds:
.. method:: InlineModelAdmin.get_max_num(request, obj=None, **kwargs)
.. versionadded:: 1.6
Returns the maximum number of extra inline forms to use. By default,
returns the :attr:`InlineModelAdmin.max_num` attribute.
@ -2551,11 +2519,6 @@ your URLconf. Specifically, add these four patterns:
url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm', name='password_reset_confirm'),
url(r'^reset/done/$', 'django.contrib.auth.views.password_reset_complete', name='password_reset_complete'),
.. versionchanged:: 1.6
The pattern for :func:`~django.contrib.auth.views.password_reset_confirm`
changed as the ``uid`` is now base 64 encoded.
(This assumes you've added the admin at ``admin/`` and requires that you put
the URLs starting with ``^admin/`` before the line that includes the admin app
itself).

View File

@ -143,23 +143,12 @@ Methods
:meth:`~django.contrib.auth.models.User.set_unusable_password()`
were used.
.. versionchanged:: 1.6
In Django 1.4 and 1.5, a blank string was unintentionally stored
as an unusable password.
.. method:: check_password(raw_password)
Returns ``True`` if the given raw string is the correct password for
the user. (This takes care of the password hashing in making the
comparison.)
.. versionchanged:: 1.6
In Django 1.4 and 1.5, a blank string was unintentionally
considered to be an unusable password, resulting in this method
returning ``False`` for such a password.
.. method:: set_unusable_password()
Marks the user as having no password set. This isn't the same as

View File

@ -291,8 +291,6 @@ model:
.. attribute:: GenericForeignKey.for_concrete_model
.. versionadded:: 1.6
If ``False``, the field will be able to reference proxy models. Default
is ``True``. This mirrors the ``for_concrete_model`` argument to
:meth:`~django.contrib.contenttypes.models.ContentTypeManager.get_for_model`.
@ -508,11 +506,9 @@ The :mod:`django.contrib.contenttypes.forms` module provides:
:func:`~django.forms.models.modelformset_factory` and
:func:`~django.forms.models.inlineformset_factory`.
.. versionadded:: 1.6
The ``for_concrete_model`` argument corresponds to the
:class:`~django.contrib.contenttypes.fields.GenericForeignKey.for_concrete_model`
argument on ``GenericForeignKey``.
The ``for_concrete_model`` argument corresponds to the
:class:`~django.contrib.contenttypes.fields.GenericForeignKey.for_concrete_model`
argument on ``GenericForeignKey``.
.. versionchanged:: 1.7

View File

@ -260,8 +260,6 @@ wizard's ``as_view()`` method takes a list of your
(r'^contact/$', ContactWizard.as_view([ContactForm1, ContactForm2])),
)
.. versionchanged:: 1.6
You can also pass the form list as a class attribute named ``form_list``::
class ContactWizard(WizardView):
@ -317,8 +315,6 @@ The ``urls.py`` file would contain something like::
(r'^checkout/$', OrderWizard.as_view(FORMS, condition_dict={'cc': pay_by_credit_card})),
)
.. versionchanged:: 1.6
The ``condition_dict`` can be passed as attribute for the ``as_view()`
method or as a class attribute named ``condition_dict``::
@ -493,8 +489,6 @@ Advanced ``WizardView`` methods
.. method:: WizardView.render_goto_step(step, goto_step, **kwargs)
.. versionadded:: 1.6
This method is called when the step should be changed to something else
than the next step. By default, this method just stores the requested
step ``goto_step`` in the storage and then renders the new step.
@ -598,8 +592,6 @@ Providing initial data for the forms
The ``initial_dict`` can also take a list of dictionaries for a specific
step if the step is a ``FormSet``.
.. versionchanged:: 1.6
The ``initial_dict`` can also be added as a class attribute named
``initial_dict`` to avoid having the initial data in the ``urls.py``.

View File

@ -7,8 +7,6 @@ GeoDjango Forms API
.. module:: django.contrib.gis.forms
:synopsis: GeoDjango forms API.
.. versionadded:: 1.6
GeoDjango provides some specialized form fields and widgets in order to visually
display and edit geolocalized data on a map. By default, they use
`OpenLayers`_-powered maps, with a base WMS layer provided by `Metacarta`_.

View File

@ -354,8 +354,6 @@ example::
Adding messages in Class Based Views
------------------------------------
.. versionadded:: 1.6
.. class:: views.SuccessMessageMixin
Adds a success message attribute to

View File

@ -249,10 +249,6 @@ To do this, you can use the sites framework. A simple example::
Enabling the sites framework
============================
.. versionchanged:: 1.6
In previous versions, the sites framework was enabled by default.
To enable the sites framework, follow these steps:
1. Add ``'django.contrib.sites'`` to your :setting:`INSTALLED_APPS`

View File

@ -139,8 +139,6 @@ into those elements.
.. method:: Feed.get_context_data(**kwargs)
.. versionadded:: 1.6
There is also a way to pass additional information to title and description
templates, if you need to supply more than the two variables mentioned
before. You can provide your implementation of ``get_context_data`` method

View File

@ -19,8 +19,6 @@ General notes
Persistent connections
----------------------
.. versionadded:: 1.6
Persistent connections avoid the overhead of re-establishing a connection to
the database in each request. They're controlled by the
:setting:`CONN_MAX_AGE` parameter which defines the maximum lifetime of a
@ -114,34 +112,11 @@ will do some additional queries to set these parameters.
.. _ALTER ROLE: http://www.postgresql.org/docs/current/interactive/sql-alterrole.html
.. _postgresql-autocommit-mode:
Autocommit mode
---------------
.. versionchanged:: 1.6
In previous versions of Django, database-level autocommit could be enabled by
setting the ``autocommit`` key in the :setting:`OPTIONS` part of your database
configuration in :setting:`DATABASES`::
DATABASES = {
# ...
'OPTIONS': {
'autocommit': True,
},
}
Since Django 1.6, autocommit is turned on by default. This configuration is
ignored and can be safely removed.
.. _database-isolation-level:
Isolation level
---------------
.. versionadded:: 1.6
Like PostgreSQL itself, Django defaults to the ``READ COMMITTED`` `isolation
level`_. If you need a higher isolation level such as ``REPEATABLE READ`` or
``SERIALIZABLE``, set it in the :setting:`OPTIONS` part of your database

View File

@ -144,10 +144,6 @@ Example usage::
django-admin.py compilemessages -l pt_BR
django-admin.py compilemessages -l pt_BR -l fr
.. versionchanged:: 1.6
Added the ability to specify multiple locales.
createcachetable
----------------
@ -203,10 +199,6 @@ example, the default settings don't define :setting:`ROOT_URLCONF`, so
The :djadminopt:`--all` option may be provided to display all settings, even
if they have Django's default value. Such settings are prefixed by ``"###"``.
.. versionadded:: 1.6
The :djadminopt:`--all` option was added.
dumpdata <app_label app_label app_label.Model ...>
--------------------------------------------------
@ -278,8 +270,6 @@ Use :ref:`natural keys <topics-serialization-natural-keys>` to represent
any foreign key and many-to-many relationship with a model that provides
a natural key definition.
.. versionadded:: 1.6
.. django-admin-option:: --pks
By default, ``dumpdata`` will output all the records of the model, but
@ -363,11 +353,6 @@ access to your precious data on a model by model basis.
The :djadminopt:`--database` option may be used to specify the
database to introspect.
.. versionchanged:: 1.6
The behavior by which introspected models are created as unmanaged ones is new
in Django 1.6.
loaddata <fixture fixture ...>
------------------------------
@ -565,10 +550,6 @@ Example usage::
django-admin.py makemessages -l pt_BR
django-admin.py makemessages -l pt_BR -l fr
.. versionchanged:: 1.6
Added the ability to specify multiple locales.
.. versionchanged:: 1.7
Added the ``--previous`` option to the ``msgmerge`` command when merging
@ -620,8 +601,6 @@ for technically skilled translators to understand each message's context.
.. django-admin-option:: --keep-pot
.. versionadded:: 1.6
Use the ``--keep-pot`` option to prevent Django from deleting the temporary
.pot files it generates before creating the .po file. This is useful for
debugging errors which may prevent the final language files from being created.
@ -977,10 +956,6 @@ behavior you can use the ``--no-startup`` option. e.g.::
django-admin.py shell --plain --no-startup
.. versionadded:: 1.6
The ``--no-startup`` option was added in Django 1.6.
sql <app_label app_label ...>
-----------------------------
@ -1043,8 +1018,6 @@ sqldropindexes <app_label app_label ...>
.. django-admin:: sqldropindexes
.. versionadded:: 1.6
Prints the DROP INDEX SQL statements for the given app name(s).
The :djadminopt:`--database` option can be used to specify the database for
@ -1510,11 +1483,6 @@ By default, ``django-admin.py`` will show a simple error message whenever an
for any other exception. If you specify ``--traceback``, ``django-admin.py``
will also output a full stack trace when a ``CommandError`` is raised.
.. versionchanged:: 1.6
Previously, Django didn't show a full stack trace by default for exceptions
other than ``CommandError``.
.. django-admin-option:: --verbosity
Example usage::

View File

@ -187,11 +187,6 @@ information provided. (Note that this attribute is available under
both Python 2 and Python 3, although :pep:`3134` normally only applies
to Python 3.)
.. versionchanged:: 1.6
Previous versions of Django only wrapped ``DatabaseError`` and
``IntegrityError``, and did not provide ``__cause__``.
.. exception:: models.ProtectedError
Raised to prevent deletion of referenced objects when using

View File

@ -623,10 +623,6 @@ By default, ``auto_id`` is set to the string ``'id_%s'``.
A translatable string (defaults to a colon (``:``) in English) that will be
appended after any label name when a form is rendered.
.. versionchanged:: 1.6
The default ``label_suffix`` is translatable.
It's possible to customize that character, or omit it entirely, using the
``label_suffix`` parameter::
@ -647,8 +643,6 @@ Note that the label suffix is added only if the last character of the
label isn't a punctuation character (in English, those are ``.``, ``!``, ``?``
or ``:``).
.. versionadded:: 1.6
You can also customize the ``label_suffix`` on a per-field basis using the
``label_suffix`` parameter to :meth:`~django.forms.BoundField.label_tag`.
@ -795,18 +789,13 @@ Optionally, you can provide the ``contents`` parameter which will replace the
auto-generated label tag. An optional ``attrs`` dictionary may contain
additional attributes for the ``<label>`` tag.
.. versionchanged:: 1.6
The label now includes the form's :attr:`~django.forms.Form.label_suffix`
(a colon, by default).
.. versionadded:: 1.6
The optional ``label_suffix`` parameter allows you to override the form's
:attr:`~django.forms.Form.label_suffix`. For example, you can use an empty
string to hide the label on selected fields. If you need to do this in a
template, you could write a custom filter to allow passing parameters to
``label_tag``.
The HTML that's generated includes the form's
:attr:`~django.forms.Form.label_suffix` (a colon, by default). The optional
``label_suffix`` parameter allows you to override the form's
:attr:`~django.forms.Form.label_suffix`. For example, you can use an empty
string to hide the label on selected fields. If you need to do this in a
template, you could write a custom filter to allow passing parameters to
``label_tag``.
.. versionchanged:: 1.8

View File

@ -481,11 +481,8 @@ For each field, we describe the default widget used if you don't specify
The ``max_value`` and ``min_value`` error messages may contain
``%(limit_value)s``, which will be substituted by the appropriate limit.
.. versionchanged:: 1.6
Similarly, the ``max_digits``, ``max_decimal_places`` and
``max_whole_digits`` error messages may contain ``%(max)s``.
Similarly, the ``max_digits``, ``max_decimal_places`` and
``max_whole_digits`` error messages may contain ``%(max)s``.
Takes four optional arguments:
@ -1105,11 +1102,9 @@ objects (in the case of ``ModelMultipleChoiceField``) into the
* Error message keys: ``required``, ``list``, ``invalid_choice``,
``invalid_pk_value``
.. versionchanged:: 1.6
The ``invalid_choice`` message may contain ``%(value)s`` and the
``invalid_pk_value`` message may contain ``%(pk)s``, which will be
substituted by the appropriate values.
The ``invalid_choice`` message may contain ``%(value)s`` and the
``invalid_pk_value`` message may contain ``%(pk)s``, which will be
substituted by the appropriate values.
Allows the selection of one or more model objects, suitable for
representing a many-to-many relation. As with :class:`ModelChoiceField`,

View File

@ -11,10 +11,6 @@ Formset Functions
See :ref:`formsets` for example usage.
.. versionchanged:: 1.6
The ``validate_max`` parameter was added.
.. versionchanged:: 1.7
The ``min_num`` and ``validate_min`` parameters were added.

View File

@ -61,11 +61,6 @@ Model Form Functions
See :ref:`model-formsets` for example usage.
.. versionchanged:: 1.6
The ``widgets``, ``validate_max``, ``localized_fields``, ``labels``,
``help_texts``, and ``error_messages`` 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, localized_fields=None, labels=None, help_texts=None, error_messages=None)
Returns an ``InlineFormSet`` using :func:`modelformset_factory` with
@ -76,8 +71,3 @@ Model Form Functions
the ``parent_model``, you must specify a ``fk_name``.
See :ref:`inline-formsets` for example usage.
.. versionchanged:: 1.6
The ``widgets``, ``validate_max`` and ``localized_fields``, ``labels``,
``help_texts``, and ``error_messages`` parameters were added.

View File

@ -113,8 +113,6 @@ for all remaining fields are still executed.
Raising ``ValidationError``
---------------------------
.. versionchanged:: 1.6
In order to make error messages flexible and easy to override, consider the
following guidelines:

View File

@ -409,8 +409,6 @@ These widgets make use of the HTML elements ``input`` and ``textarea``.
.. class:: NumberInput
.. versionadded:: 1.6
Text input: ``<input type="number" ...>``
Beware that not all browsers support entering localized numbers in
@ -422,8 +420,6 @@ These widgets make use of the HTML elements ``input`` and ``textarea``.
.. class:: EmailInput
.. versionadded:: 1.6
Text input: ``<input type="email" ...>``
``URLInput``
@ -431,8 +427,6 @@ These widgets make use of the HTML elements ``input`` and ``textarea``.
.. class:: URLInput
.. versionadded:: 1.6
Text input: ``<input type="url" ...>``
``PasswordInput``
@ -649,10 +643,8 @@ Selector and checkbox widgets
simply includes ``{{ myform.beatles }}`` -- they'll be output in a ``<ul>``
with ``<li>`` tags, as above.
.. versionchanged:: 1.6
The outer ``<ul>`` container will now receive the ``id`` attribute defined on
the widget.
The outer ``<ul>`` container will receive the ``id`` attribute defined on
the widget.
.. versionchanged:: 1.7
@ -675,10 +667,8 @@ the widget.
...
</ul>
.. versionchanged:: 1.6
The outer ``<ul>`` container will now receive the ``id`` attribute defined on
the widget.
The outer ``<ul>`` container will receive the ``id`` attribute defined on
the widget.
Like :class:`RadioSelect`, you can now loop over the individual checkboxes making
up the lists. See the documentation of :class:`RadioSelect` for more details.

View File

@ -217,30 +217,6 @@ Adds protection against Cross Site Request Forgeries by adding hidden form
fields to POST forms and checking requests for the correct value. See the
:doc:`Cross Site Request Forgery protection documentation </ref/contrib/csrf>`.
Transaction middleware
----------------------
.. module:: django.middleware.transaction
:synopsis: Middleware binding a database transaction to each Web request.
.. class:: TransactionMiddleware
.. versionchanged:: 1.6
``TransactionMiddleware`` is deprecated. The documentation of transactions
contains :ref:`upgrade instructions <transactions-upgrading-from-1.5>`.
Binds commit and rollback of the default database to the request/response
phase. If a view function runs successfully, a commit is done. If it fails with
an exception, a rollback is done.
The order of this middleware in the stack is important: middleware modules
running outside of it run with commit-on-save - the default Django behavior.
Middleware modules running inside it (coming later in the stack) will be under
the same transaction control as the view functions.
See the :doc:`transaction management documentation </topics/db/transactions>`.
X-Frame-Options middleware
--------------------------

View File

@ -384,8 +384,6 @@ guaranteed to fit numbers from ``-9223372036854775808`` to
.. class:: BinaryField([**options])
.. versionadded:: 1.6
A field to store raw binary data. It only supports ``bytes`` assignment. Be
aware that this field has limited functionality. For example, it is not possible
to filter a queryset on a ``BinaryField`` value.
@ -409,10 +407,8 @@ The default form widget for this field is a
If you need to accept :attr:`~Field.null` values then use
:class:`NullBooleanField` instead.
.. versionchanged:: 1.6
The default value of ``BooleanField`` was changed from ``False`` to
``None`` when :attr:`Field.default` isn't defined.
The default value of ``BooleanField`` is ``None`` when :attr:`Field.default`
isn't defined.
``CharField``
-------------
@ -1142,8 +1138,6 @@ define the details of how the relation works.
.. attribute:: ForeignKey.related_query_name
.. versionadded:: 1.6
The name to use for the reverse filter name from the target model.
Defaults to the value of :attr:`related_name` if it is set, otherwise it
defaults to the name of the model::
@ -1163,8 +1157,6 @@ define the details of how the relation works.
.. attribute:: ForeignKey.db_constraint
.. versionadded:: 1.6
Controls whether or not a constraint should be created in the database for
this foreign key. The default is ``True``, and that's almost certainly what
you want; setting this to ``False`` can be very bad for data integrity.
@ -1292,8 +1284,6 @@ that control how the relationship functions.
.. attribute:: ManyToManyField.related_query_name
.. versionadded:: 1.6
Same as :attr:`ForeignKey.related_query_name`.
.. attribute:: ManyToManyField.limit_choices_to
@ -1396,8 +1386,6 @@ that control how the relationship functions.
.. attribute:: ManyToManyField.db_constraint
.. versionadded:: 1.6
Controls whether or not constraints should be created in the database for
the foreign keys in the intermediary table. The default is ``True``, and
that's almost certainly what you want; setting this to ``False`` can be

View File

@ -86,14 +86,8 @@ validation errors yourself, or if you have excluded fields from the
.. method:: Model.full_clean(exclude=None, validate_unique=True)
.. versionchanged:: 1.6
The ``validate_unique`` parameter was added to allow skipping
:meth:`Model.validate_unique()`. Previously, :meth:`Model.validate_unique()`
was always called by ``full_clean``.
This method calls :meth:`Model.clean_fields()`, :meth:`Model.clean()`, and
:meth:`Model.validate_unique()` (if ``validate_unique`` is ``True``, in that
:meth:`Model.validate_unique()` (if ``validate_unique`` is ``True``), in that
order and raises a :exc:`~django.core.exceptions.ValidationError` that has a
``message_dict`` attribute containing errors from all three stages.
@ -310,17 +304,15 @@ value explicitly when saving new objects, if you cannot guarantee the
primary-key value is unused. For more on this nuance, see `Explicitly specifying
auto-primary-key values`_ above and `Forcing an INSERT or UPDATE`_ below.
.. versionchanged:: 1.6
Previously Django did a ``SELECT`` when the primary key attribute was set.
If the ``SELECT`` found a row, then Django did an ``UPDATE``, otherwise it
did an ``INSERT``. The old algorithm results in one more query in the
``UPDATE`` case. There are some rare cases where the database doesn't
report that a row was updated even if the database contains a row for the
object's primary key value. An example is the PostgreSQL ``ON UPDATE``
trigger which returns ``NULL``. In such cases it is possible to revert to the
old algorithm by setting the :attr:`~django.db.models.Options.select_on_save`
option to ``True``.
In Django 1.5 and earlier, Django did a ``SELECT`` when the primary key
attribute was set. If the ``SELECT`` found a row, then Django did an ``UPDATE``,
otherwise it did an ``INSERT``. The old algorithm results in one more query in
the ``UPDATE`` case. There are some rare cases where the database doesn't
report that a row was updated even if the database contains a row for the
object's primary key value. An example is the PostgreSQL ``ON UPDATE`` trigger
which returns ``NULL``. In such cases it is possible to revert to the old
algorithm by setting the :attr:`~django.db.models.Options.select_on_save`
option to ``True``.
.. _ref-models-force-insert:

View File

@ -279,8 +279,6 @@ Django quotes column and table names behind the scenes.
.. attribute:: Options.select_on_save
.. versionadded:: 1.6
Determines if Django will use the pre-1.6
:meth:`django.db.models.Model.save()` algorithm. The old algorithm
uses ``SELECT`` to determine if there is an existing row to be updated.

View File

@ -585,16 +585,7 @@ Returns a ``DateQuerySet`` — a ``QuerySet`` that evaluates to a list of
:class:`datetime.date` objects representing all available dates of a
particular kind within the contents of the ``QuerySet``.
.. versionchanged:: 1.6
``dates`` used to return a list of :class:`datetime.datetime` objects.
``field`` should be the name of a ``DateField`` of your model.
.. versionchanged:: 1.6
``dates`` used to accept operating on a ``DateTimeField``.
``kind`` should be either ``"year"``, ``"month"`` or ``"day"``. Each
``datetime.date`` object in the result list is "truncated" to the given
``type``.
@ -624,8 +615,6 @@ Examples::
datetimes
~~~~~~~~~
.. versionadded:: 1.6
.. method:: datetimes(field, kind, order='ASC', tzinfo=None)
Returns a ``DateTimeQuerySet`` — a ``QuerySet`` that evaluates to a list of
@ -769,8 +758,6 @@ follow all non-null foreign keys it can find - nullable foreign keys must be
specified. This is not recommended in most cases as it is likely to make the
underlying query more complex, and return more data, than is actually needed.
.. versionadded:: 1.6
If you need to clear the list of related fields added by past calls of
``select_related`` on a ``QuerySet``, you can pass ``None`` as a parameter::
@ -1474,10 +1461,6 @@ get_or_create
A convenience method for looking up an object with the given ``kwargs`` (may be
empty if your model has defaults for all fields), creating one if necessary.
.. versionchanged:: 1.6
Older versions of Django required ``kwargs``.
Returns a tuple of ``(object, created)``, where ``object`` is the retrieved or
created object and ``created`` is a boolean specifying whether a new object was
created.
@ -1762,16 +1745,13 @@ earliest
.. method:: earliest(field_name=None)
.. versionadded:: 1.6
Works otherwise like :meth:`~django.db.models.query.QuerySet.latest` except
the direction is changed.
first
~~~~~
.. method:: first()
.. versionadded:: 1.6
.. method:: first()
Returns the first object matched by the queryset, or ``None`` if there
is no matching object. If the ``QuerySet`` has no ordering defined, then the
@ -1793,8 +1773,6 @@ last
~~~~
.. method:: last()
.. versionadded:: 1.6
Works like :meth:`first()`, but returns the last object in the queryset.
aggregate
@ -2435,8 +2413,6 @@ in the database <database-time-zone-definitions>`.
hour
~~~~
.. versionadded:: 1.6
For datetime fields, an exact hour match. Takes an integer between 0 and 23.
Example::
@ -2457,8 +2433,6 @@ zone before filtering.
minute
~~~~~~
.. versionadded:: 1.6
For datetime fields, an exact minute match. Takes an integer between 0 and 59.
Example::
@ -2479,8 +2453,6 @@ zone before filtering.
second
~~~~~~
.. versionadded:: 1.6
For datetime fields, an exact second match. Takes an integer between 0 and 59.
Example::

View File

@ -636,8 +636,6 @@ Attributes
.. attribute:: HttpResponse.reason_phrase
.. versionadded:: 1.6
The HTTP reason phrase for the response.
.. attribute:: HttpResponse.streaming
@ -670,8 +668,6 @@ Methods
``status`` is the `HTTP status code`_ for the response.
.. versionadded:: 1.6
``reason`` is the HTTP response phrase. If not provided, a default phrase
will be used.
@ -782,8 +778,6 @@ types of HTTP responses. Like ``HttpResponse``, these subclasses live in
.. attribute:: HttpResponseRedirect.url
.. versionadded:: 1.6
This read-only attribute represents the URL the response will redirect
to (equivalent to the ``Location`` response header).
@ -954,8 +948,6 @@ Attributes
.. attribute:: HttpResponse.reason_phrase
.. versionadded:: 1.6
The HTTP reason phrase for the response.
.. attribute:: HttpResponse.streaming

View File

@ -348,8 +348,6 @@ protection is safe from cross-subdomain attacks by default - please see the
CSRF_COOKIE_HTTPONLY
--------------------
.. versionadded:: 1.6
Default: ``False``
Whether to use ``HttpOnly`` flag on the CSRF cookie. If this is set to
@ -455,8 +453,6 @@ configurations are available:
ATOMIC_REQUESTS
~~~~~~~~~~~~~~~
.. versionadded:: 1.6
Default: ``False``
Set this to ``True`` to wrap each HTTP request in a transaction on this
@ -467,8 +463,6 @@ database. See :ref:`tying-transactions-to-http-requests`.
AUTOCOMMIT
~~~~~~~~~~
.. versionadded:: 1.6
Default: ``True``
Set this to ``False`` if you want to :ref:`disable Django's transaction
@ -535,8 +529,6 @@ file. When specifying the path, always use forward slashes, even on Windows
CONN_MAX_AGE
~~~~~~~~~~~~
.. versionadded:: 1.6
Default: ``0``
The lifetime of a database connection, in seconds. Use ``0`` to close database
@ -2121,10 +2113,6 @@ precedence and will be applied instead.
See also :setting:`DATE_INPUT_FORMATS` and :setting:`DATETIME_INPUT_FORMATS`.
.. versionchanged:: 1.6
Input format with microseconds has been added.
.. _datetime: http://docs.python.org/library/datetime.html#strftime-strptime-behavior
.. setting:: TIME_ZONE
@ -2654,12 +2642,6 @@ SESSION_SERIALIZER
Default: ``'django.contrib.sessions.serializers.JSONSerializer'``
.. versionchanged:: 1.6
The default switched from
:class:`~django.contrib.sessions.serializers.PickleSerializer` to
:class:`~django.contrib.sessions.serializers.JSONSerializer` in Django 1.6.
Full import path of a serializer class to use for serializing session data.
Included serializers are:

View File

@ -974,12 +974,8 @@ url
^^^
Returns an absolute path reference (a URL without the domain name) matching a
given view function and optional parameters.
.. versionchanged:: 1.6
Any special characters in the resulting path will be encoded using
:func:`~django.utils.encoding.iri_to_uri`.
given view function and optional parameters. Any special characters in the
resulting path will be encoded using :func:`~django.utils.encoding.iri_to_uri`.
This is a way to output links without violating the DRY principle by having to
hard-code URLs in your templates::

View File

@ -117,8 +117,6 @@ handler400
.. data:: handler400
.. versionadded:: 1.6
A callable, or a string representing the full Python import path to the view
that should be called if the HTTP client has sent a request that caused an error
condition and a response with a status code of 400.

View File

@ -613,10 +613,6 @@ escaping HTML.
.. _bleach: https://pypi.python.org/pypi/bleach
.. versionchanged:: 1.6
For improved safety, ``strip_tags`` is now parser-based.
.. function:: remove_tags(value, tags)
Removes a space-separated list of [X]HTML tag names from the output.
@ -696,15 +692,11 @@ escaping HTML.
.. function:: urlsafe_base64_encode(s)
.. versionadded:: 1.6
Encodes a bytestring in base64 for use in URLs, stripping any trailing
equal signs.
.. function:: urlsafe_base64_decode(s)
.. versionadded:: 1.6
Decodes a base64 encoded string, adding back any trailing equal signs that
might have been stripped.
@ -733,7 +725,6 @@ Functions for working with Python modules.
.. function:: import_by_path(dotted_path, error_prefix='')
.. versionadded:: 1.6
.. deprecated:: 1.7
Use :meth:`~django.utils.module_loading.import_string` instead.

View File

@ -610,13 +610,11 @@ Transaction management
When using managed transactions -- that is, anything but the default
autocommit mode -- it is important when a transaction is marked as
"dirty". Dirty transactions are committed by the
:func:`~django.db.transaction.commit_on_success` decorator or the
:class:`~django.middleware.transaction.TransactionMiddleware`, and
:func:`~django.db.transaction.commit_manually` forces them to be
closed explicitly; clean transactions "get a pass", which means they
are usually rolled back at the end of a request when the connection is
closed.
"dirty". Dirty transactions are committed by the ``commit_on_success``
decorator or the ``django.middleware.transaction.TransactionMiddleware``, and
``commit_manually`` forces them to be closed explicitly; clean transactions
"get a pass", which means they are usually rolled back at the end of a request
when the connection is closed.
Until Django 1.3, transactions were only marked dirty when Django was
aware of a modifying operation performed in them; that is, either some

View File

@ -411,8 +411,8 @@ Autocommit option for PostgreSQL
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In previous versions, database-level autocommit was only an option for
PostgreSQL, and it was disabled by default. This option is now :ref:`ignored
<postgresql-autocommit-mode>` and can be removed.
PostgreSQL, and it was disabled by default. This option is now ignored and can
be removed.
.. _new-test-runner:

View File

@ -70,6 +70,10 @@ The order of :setting:`AUTHENTICATION_BACKENDS` matters, so if the same
username and password is valid in multiple backends, Django will stop
processing at the first positive match.
If a backend raises a :class:`~django.core.exceptions.PermissionDenied`
exception, authentication will immediately fail. Django won't check the
backends that follow.
.. note::
Once a user has authenticated, Django stores which backend was used to
@ -81,12 +85,6 @@ processing at the first positive match.
you need to force users to re-authenticate using different methods. A simple
way to do that is simply to execute ``Session.objects.all().delete()``.
.. versionadded:: 1.6
If a backend raises a :class:`~django.core.exceptions.PermissionDenied`
exception, authentication will immediately fail. Django won't check the
backends that follow.
Writing an authentication backend
---------------------------------
@ -570,23 +568,12 @@ The following methods are available on any subclass of
:meth:`~django.contrib.auth.models.AbstractBaseUser.set_unusable_password()`
were used.
.. versionchanged:: 1.6
In Django 1.4 and 1.5, a blank string was unintentionally stored
as an unusable password as well.
.. method:: models.AbstractBaseUser.check_password(raw_password)
Returns ``True`` if the given raw string is the correct password for
the user. (This takes care of the password hashing in making the
comparison.)
.. versionchanged:: 1.6
In Django 1.4 and 1.5, a blank string was unintentionally
considered to be an unusable password, resulting in this method
returning ``False`` for such a password.
.. method:: models.AbstractBaseUser.set_unusable_password()
Marks the user as having no password set. This isn't the same as
@ -909,10 +896,6 @@ models provided by ``auth`` app::
"Run tests for a simple extension of the built-in User."
self.assertSomething()
.. versionchanged:: 1.6
In Django 1.5, it wasn't necessary to explicitly import the test User models.
A full example
--------------

View File

@ -851,11 +851,6 @@ patterns.
error message since this would expose their account's existence but no
mail will be sent either.
.. versionchanged:: 1.6
Previously, error messages indicated whether a given email was
registered.
**URL name:** ``password_reset``
**Optional arguments:**
@ -936,15 +931,9 @@ patterns.
Someone asked for password reset for email {{ email }}. Follow the link below:
{{ protocol}}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}
.. versionchanged:: 1.6
Reversing ``password_reset_confirm`` takes a ``uidb64`` argument instead
of ``uidb36``.
The same template context is used for subject template. Subject must be
single line plain text string.
.. function:: password_reset_done(request[, template_name, current_app, extra_context])
The page shown after a user has been emailed a link to reset their
@ -976,11 +965,6 @@ patterns.
* ``uidb64``: The user's id encoded in base 64. Defaults to ``None``.
.. versionchanged:: 1.6
The ``uidb64`` parameter was previously base 36 encoded and named
``uidb36``.
* ``token``: Token to check that the password is valid. Defaults to
``None``.

View File

@ -183,11 +183,8 @@ can switch to new (and better) storage algorithms as they get invented.
However, Django can only upgrade passwords that use algorithms mentioned in
:setting:`PASSWORD_HASHERS`, so as you upgrade to new systems you should make
sure never to *remove* entries from this list. If you do, users using
unmentioned algorithms won't be able to upgrade.
.. versionadded:: 1.6
Passwords will be upgraded when changing the PBKDF2 iteration count.
unmentioned algorithms won't be able to upgrade. Passwords will be upgraded
when changing the PBKDF2 iteration count.
.. _sha1: http://en.wikipedia.org/wiki/SHA1
.. _pbkdf2: http://en.wikipedia.org/wiki/PBKDF2
@ -214,12 +211,6 @@ from the ``User`` model.
database to check against, and returns ``True`` if they match, ``False``
otherwise.
.. versionchanged:: 1.6
In Django 1.4 and 1.5, a blank string was unintentionally considered
to be an unusable password, resulting in this method returning
``False`` for such a password.
.. function:: make_password(password[, salt, hashers])
Creates a hashed password in the format used by this application. It takes

View File

@ -771,11 +771,6 @@ of the appropriate backend in the :setting:`CACHES` setting (explained above).
It's the number of seconds the value should be stored in the cache. Passing in
``None`` for ``timeout`` will cache the value forever.
.. versionchanged:: 1.6
Previously, passing ``None`` explicitly would use the default timeout
value.
If the object doesn't exist in the cache, ``cache.get()`` returns ``None``::
# Wait 30 seconds for 'my_key' to expire...

View File

@ -179,10 +179,6 @@ your choice of default manager in order to avoid a situation where overriding
``get_queryset()`` results in an inability to retrieve objects you'd like to
work with.
.. versionchanged:: 1.6
The ``get_queryset`` method was previously named ``get_query_set``.
.. _managers-for-related-objects:
Using managers for related object access

View File

@ -197,13 +197,6 @@ argument.
__ http://en.wikipedia.org/wiki/SQL_injection
.. versionchanged:: 1.6
In Django 1.5 and earlier, you could pass parameters as dictionaries
when using PostgreSQL or MySQL, although this wasn't documented. Now
you can also do this when using Oracle, and it is officially supported.
.. _executing-custom-sql:
Executing custom SQL directly
@ -236,13 +229,6 @@ For example::
return row
.. versionchanged:: 1.6
In Django 1.5 and earlier, after performing a data changing operation, you
had to call ``transaction.commit_unless_managed()`` to ensure your changes
were committed to the database. Since Django now defaults to database-level
autocommit, this isn't necessary any longer.
Note that if you want to include literal percent signs in the query, you have to
double them in the case you are passing parameters::

View File

@ -24,11 +24,6 @@ integrity of ORM operations that require multiple queries, especially
Django's :class:`~django.test.TestCase` class also wraps each test in a
transaction for performance reasons.
.. versionchanged:: 1.6
Previous version of Django featured :ref:`a more complicated default
behavior <transactions-upgrading-from-1.5>`.
.. _tying-transactions-to-http-requests:
Tying transactions to HTTP requests
@ -93,16 +88,9 @@ still possible to prevent views from running in a transaction.
It only works if it's applied to the view itself.
.. versionchanged:: 1.6
Django used to provide this feature via ``TransactionMiddleware``, which is
now deprecated.
Controlling transactions explicitly
-----------------------------------
.. versionadded:: 1.6
Django provides a single API to control database transactions.
.. function:: atomic(using=None, savepoint=True)
@ -251,11 +239,6 @@ on.
To avoid this, you can :ref:`deactivate the transaction management
<deactivate-transaction-management>`, but it isn't recommended.
.. versionchanged:: 1.6
Before Django 1.6, autocommit was turned off, and it was emulated by
forcing a commit after write operations in the ORM.
.. _deactivate-transaction-management:
Deactivating transaction management
@ -272,10 +255,6 @@ by Django or by third-party libraries. Thus, this is best used in situations
where you want to run your own transaction-controlling middleware or do
something really strange.
.. versionchanged:: 1.6
This used to be controlled by the ``TRANSACTIONS_MANAGED`` setting.
Low-level APIs
==============
@ -292,8 +271,6 @@ Low-level APIs
Autocommit
----------
.. versionadded:: 1.6
Django provides a straightforward API in the :mod:`django.db.transaction`
module to manage the autocommit state of each database connection.
@ -360,12 +337,10 @@ you issue a rollback, the entire transaction is rolled back. Savepoints
provide the ability to perform a fine-grained rollback, rather than the full
rollback that would be performed by ``transaction.rollback()``.
.. versionchanged:: 1.6
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`
rather than the functions described below, but they're still part of the
public API, and there's no plan to deprecate them.
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`
rather than the functions described below, but they're still part of the
public API, and there's no plan to deprecate them.
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
@ -419,8 +394,6 @@ The following example demonstrates the use of savepoints::
transaction.savepoint_rollback(sid)
# open transaction now contains only a.save()
.. versionadded:: 1.6
Savepoints may be used to recover from a database error by performing a partial
rollback. If you're doing this inside an :func:`atomic` block, the entire block
will still be rolled back, because it doesn't know you've handled the situation

View File

@ -118,13 +118,6 @@ affect validation. If ``validate_max=True`` is passed to the
:func:`~django.forms.formsets.formset_factory`, then ``max_num`` will affect
validation. See :ref:`validate_max`.
.. versionchanged:: 1.6
The ``validate_max`` parameter was added to
:func:`~django.forms.formsets.formset_factory`. Also, the behavior of
``FormSet`` was brought in line with that of ``ModelFormSet`` so that it
displays initial data regardless of ``max_num``.
Formset validation
------------------
@ -169,8 +162,6 @@ the expected error message appears for the second item.
.. method:: BaseFormSet.total_error_count()
.. versionadded:: 1.6
To check how many errors there are in the formset, we can use the
``total_error_count`` method::
@ -344,11 +335,6 @@ excessive.
truncated entirely. This is to protect against memory exhaustion attacks
using forged POST requests.
.. versionchanged:: 1.6
The ``validate_max`` parameter was added to
:func:`~django.forms.formsets.formset_factory`.
``validate_min``
~~~~~~~~~~~~~~~~

View File

@ -317,14 +317,11 @@ attributes, which can be useful in your templates:
The label of the field, e.g. ``Email address``.
``{{ field.label_tag }}``
The field's label wrapped in the appropriate HTML ``<label>`` tag.
The field's label wrapped in the appropriate HTML ``<label>`` tag. This
includes the form's :attr:`~django.forms.Form.label_suffix`. For example,
the default ``label_suffix`` is a colon::
.. versionchanged:: 1.6
This includes the form's :attr:`~django.forms.Form.label_suffix`. For
example, the default ``label_suffix`` is a colon::
<label for="id_email">Email address:</label>
<label for="id_email">Email address:</label>
``{{ field.id_for_label }}``
The ID that will be used for this field (``id_email`` in the example

View File

@ -501,10 +501,6 @@ widget::
The ``widgets`` dictionary accepts either widget instances (e.g.,
``Textarea(...)``) or classes (e.g., ``Textarea``).
.. versionadded:: 1.6
The ``labels``, ``help_texts`` and ``error_messages`` options were added.
Similarly, you can specify the ``labels``, ``help_texts`` and ``error_messages``
attributes of the inner ``Meta`` class if you want to further customize a field.
@ -610,8 +606,6 @@ the field declaratively and setting its ``validators`` parameter::
Enabling localization of fields
-------------------------------
.. versionadded:: 1.6
By default, the fields in a ``ModelForm`` will not localize their data. To
enable localization for fields, you can use the ``localized_fields``
attribute on the ``Meta`` class.
@ -818,8 +812,6 @@ exclude::
Specifying widgets to use in the form with ``widgets``
------------------------------------------------------
.. versionadded:: 1.6
Using the ``widgets`` parameter, you can specify a dictionary of values to
customize the ``ModelForm``s widget class for a particular field. This
works the same way as the ``widgets`` dictionary on the inner ``Meta``
@ -831,8 +823,6 @@ class of a ``ModelForm`` works::
Enabling localization for fields with ``localized_fields``
----------------------------------------------------------
.. versionadded:: 1.6
Using the ``localized_fields`` parameter, you can enable localization for
fields in the form.
@ -1196,9 +1186,9 @@ Notice how we pass ``instance`` in both the ``POST`` and ``GET`` cases.
Specifying widgets to use in the inline form
--------------------------------------------
.. versionadded:: 1.6
``inlineformset_factory`` uses ``modelformset_factory`` and passes most
of its arguments to ``modelformset_factory``. This means you can use
the ``widgets`` parameter in much the same way as passing it to
``modelformset_factory``. See `Specifying widgets to use in the form with widgets`_ above.
``modelformset_factory``. See `Specifying widgets to use in the form with
widgets`_ above.

View File

@ -8,8 +8,8 @@ or output.
Each middleware component is responsible for doing some specific function. For
example, Django includes a middleware component,
:class:`~django.middleware.transaction.TransactionMiddleware`, that wraps the
processing of each HTTP request in a database transaction.
:class:`~django.contrib.auth.middleware.AuthenticationMiddleware`, that
associates users with requests using sessions.
This document explains how middleware works, how you activate middleware, and
how to write your own middleware. Django ships with some built-in middleware

View File

@ -324,8 +324,6 @@ You can edit it multiple times.
Session serialization
---------------------
.. versionchanged:: 1.6
Before version 1.6, Django defaulted to using :mod:`pickle` to serialize
session data before storing it in the backend. If you're using the :ref:`signed
cookie session backend<cookie-session-backend>` and :setting:`SECRET_KEY` is

View File

@ -242,8 +242,6 @@ same way you can for the 404 and 500 views by specifying a
The 400 (bad request) view
--------------------------
.. versionadded:: 1.6
.. function:: django.views.defaults.bad_request(request, template_name='400.html')
When a :exc:`~django.core.exceptions.SuspiciousOperation` is raised in Django,

View File

@ -433,8 +433,6 @@ helper function described next.
Lazy translations and plural
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. versionadded:: 1.6
When using lazy translation for a plural string (``[u]n[p]gettext_lazy``), you
generally don't know the ``number`` argument at the time of the string
definition. Therefore, you are authorized to pass a key name instead of an

View File

@ -531,8 +531,6 @@ Python logging module.
sensitive information to be filtered out of error reports -- learn more on
:ref:`Filtering error reports<filtering-error-reports>`.
.. versionadded:: 1.6
By setting the ``email_backend`` argument of ``AdminEmailHandler``, the
:ref:`email backend <topic-email-backends>` that is being used by the
handler can be overridden, like this::

View File

@ -122,11 +122,6 @@ Calling ``DeserializedObject.save()`` saves the object to the database.
If the ``pk`` attribute in the serialized data doesn't exist or is
null, a new instance will be saved to the database.
.. versionchanged:: 1.6
In previous versions of Django, the ``pk`` attribute had to be present
on the serialized data or a ``DeserializationError`` would be raised.
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
database. Usually, working with these ``DeserializedObject`` instances looks

View File

@ -166,8 +166,6 @@ Advanced features of ``TransactionTestCase``
.. attribute:: TransactionTestCase.available_apps
.. versionadded:: 1.6
.. warning::
This attribute is a private API. It may be changed or removed without
@ -295,8 +293,6 @@ Defining a test runner
.. currentmodule:: django.test.runner
.. versionadded:: 1.6
A test runner is a class defining a ``run_tests()`` method. Django ships
with a ``DiscoverRunner`` class that defines the default Django testing
behavior. This class defines the ``run_tests()`` entry point, plus a

View File

@ -58,12 +58,6 @@ test utility is to find all the test cases (that is, subclasses of
:class:`unittest.TestCase`) in any file whose name begins with ``test``,
automatically build a test suite out of those test cases, and run that suite.
.. versionchanged:: 1.6
Previously, Django's default test runner only discovered tests in
``tests.py`` and ``models.py`` files within a Python package listed in
:setting:`INSTALLED_APPS`.
For more details about :mod:`unittest`, see the Python documentation.
.. warning::
@ -120,15 +114,6 @@ You can specify a custom filename pattern match using the ``-p`` (or
$ ./manage.py test --pattern="tests_*.py"
.. versionchanged:: 1.6
Previously, test labels were in the form ``applabel``,
``applabel.TestCase``, or ``applabel.TestCase.test_method``, rather than
being true Python dotted paths, and tests could only be found within
``tests.py`` or ``models.py`` files within a Python package listed in
:setting:`INSTALLED_APPS`. The ``--pattern`` option and file paths as test
labels are new in 1.6.
If you press ``Ctrl-C`` while the tests are running, the test runner will
wait for the currently running test to complete and then exit gracefully.
During a graceful exit the test runner will output details of any test

View File

@ -573,11 +573,6 @@ functionality like:
* Using the :attr:`~SimpleTestCase.client` :class:`~django.test.Client`.
* Custom test-time :attr:`URL maps <SimpleTestCase.urls>`.
.. versionchanged:: 1.6
The latter two features were moved from ``TransactionTestCase`` to
``SimpleTestCase`` in Django 1.6.
If you need any of the other more complex and heavyweight Django-specific
features like:
@ -1281,8 +1276,6 @@ your test suite.
.. method:: SimpleTestCase.assertFormsetError(response, formset, form_index, field, errors, msg_prefix='')
.. versionadded:: 1.6
Asserts that the ``formset`` raises the provided list of errors when
rendered.
@ -1459,16 +1452,12 @@ your test suite.
By default, the comparison is also ordering dependent. If ``qs`` doesn't
provide an implicit ordering, you can set the ``ordered`` parameter to
``False``, which turns the comparison into a Python set comparison.
If the order is undefined (if the given ``qs`` isn't ordered and the
comparison is against more than one ordered values), a ``ValueError`` is
raised.
Output in case of error can be customized with the ``msg`` argument.
.. versionchanged:: 1.6
The method now checks for undefined order and raises ``ValueError``
if undefined order is spotted. The ordering is seen as undefined if
the given ``qs`` isn't ordered and the comparison is against more
than one ordered values.
.. versionchanged:: 1.7
The method now accepts a ``msg`` parameter to allow customization of